Bonjour, j'aimerais savoir comment rajouter une condition (if) dans ma boucle de mon jeu, cependant n'importe où, ou je le met les 'vagues rouges' se forment. J'aimerais rajouter ce-ci à mon boucle:
continuer = 1
while continuer:
# calcul du temps de la boucle :
temps_boucle += [pygame.time.get_ticks()]
del temps_boucle[0]
secondes = (temps_boucle[1]-temps_boucle[0])/1000
#Définition que met le temps de l'ia pour se déplacer :
cooldown_ia-=secondes
if cooldown_ia <= 0:
for pos_ia in range (len(position_ia)):
position_ia[pos_ia][1] = trajectoire(position_ia[pos_ia][1])
cooldown_ia=cooldown_max_ia
cooldown-=secondes
#Création de la 'map' à partir de listes de liste:
fenetre.blit(fond, (0,0))
for ligne in range (0, len(tableau)):
for case in range (0,len(tableau[ligne])):
fenetre.blit(tableau[ligne][case], (case*case_x, ligne*case_y))
#Affichage des Coffres selon leur position :
for tresor in range (len(position_tresor)):
if position_tresor[tresor][0]==position_donjonperso:
fenetre.blit(t0, (position_tresor[tresor][1][0]*case_x, position_tresor[tresor][1][1]*case_y))
#Affichage de l'ia pour les différentes maps :
for pos_ia in range (len(position_ia)):
if position_ia[pos_ia][0]==position_donjonperso:
fenetre.blit(ia, (position_ia[pos_ia][1][0]*case_x, position_ia[pos_ia][1][1]*case_y))
fenetre.blit(perso, (position_perso[0]*case_x, position_perso[1]*case_y))
## fenetre.blit(ia, (position_ia[0]*case_x, position_ia[1]*case_y))## PROBLEME
# Création des textes à la fois pour la vie et pour le nombre de coffres restants :
fenetre.blit(text, (0,0))
texte_vie = police.render("Vie : "+str(decompte_vie), True, (255,150,150))
fenetre.blit(texte_vie, (5, taille_largeur-texte_vie.get_height()-5)) #Petite mise à jour au niveau du placement de la fenêtre pour qu'elle ne soit pas coller
texte_coffres = police.render("Coffres restants : "+str(decompte_coffre), True, (150,255,150))
fenetre.blit(texte_coffres, (taille_longueur-texte_coffres.get_width()-5, taille_largeur-texte_coffres.get_height()-5)) #
#Petite mise à jour pour que le texte ne soit pas collé au niveau du bas de la fenêtre pour qu'elle ne touche pas, mais qu'elle soit un peu décallé
pygame.display.flip()
#Evenements de pygame, déplacements, et exit
for event in pygame.event.get():
if event.type == QUIT or event.type == KEYDOWN and event.key == K_ESCAPE:
continuer = 0
if event.type == KEYDOWN :
if event.type == K_ESCAPE:
continuer = 0
if cooldown <= 0: #Permet un rafraîchissement du mouvement du personnage par rapport à celui de l'ia
if event.key == K_RIGHT:
position_perso = deplacement(position_perso,(1,0),True) #True > passage
cooldown=cooldown_max #''
## orientation = 1
if event.key == K_LEFT:
position_perso = deplacement(position_perso,(-1,0),True)
cooldown=cooldown_max #''
## orientation = 2
elif event.key == K_UP:
position_perso = deplacement(position_perso,(0,-1),True)
cooldown=cooldown_max #''
## orientation = 3
elif event.key == K_DOWN:
position_perso = deplacement(position_perso,(0,1),True)
cooldown=cooldown_max # ''
## orientation = 4
#Gestion de la collision avec l'ia/perso :
for pos_ia in range (len(position_ia)):
if position_ia[pos_ia][0]==position_donjonperso:
if position_perso==position_ia[pos_ia][1]:
print("collision")
decompte_vie-=1
position_ia[pos_ia][1]=(1,1)
#Gestion de la collision des trésors:
new_tresor=[] # Liste des trésors 'nouveau'
for tresor in position_tresor:
if position_donjonperso == tresor[0]:
if position_perso == tresor[1]:
decompte_coffre-=1
## tresor[0]=(0,0)
print("tresooooooor")
else:
new_tresor+=[tresor] # On ajoute les trésors dans la liste vide
else:
new_tresor+=[tresor]
position_tresor=new_tresor # Puis on les 'supprime' pour plus les voir dans le jeu
## if donjon ,position_peso=
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.