Bonjour, je m'appelle Hugo je suis en Terminale S spé ISN et j'ai besoin de votre aide pour mon projet de fin d'année:
J'ai pour l'instant fait des essais peu concluant. Nous cherchons à faire un RPG style zelda 1 et j'essaye de faire un système d'attaque ressemblant où le but est simple: on appuie sur un bouton d'attaque et une flèche part depuis le personnage jusqu'à un ennemi ou un mur.
J'ai donc fait la fonction suivante:
Code:
def animation(): #Touches: liste contenant les évènement du clavier
#x,y : coordonnés du sprite du personnage
global x,y, Touches
if len(Touches) >0:
for touche in Touches:
if touche=="Up" and y>60 or touche == "z" and y>60 :
y -=40
elif touche=="Left" and x>80 or touche == "q" and x>80:
x -=40
elif touche=="Right" and x<940 or touche=="d" and x<940:
x +=40
elif touche =="Down" and y<620 or touche=="s" and y<620:
y +=40
Fond.coords(perso,x,y)
if touche == "b":
print('ça marche un peu')
coordx,coordy = x,y
i = Fond.create_rectangle(coordx,coordy,coordx+40,coordy-10, fill="black")
while coordx <940:
print("ça marche ?")
coordx+=40
coordy+=40
Fond.coords(i,coordx,coordy,coordx+40,coordy-10)
win.after(150,animation)
La première partie fonctionne sans soucis, mais j'ai besoin d'aide à partir pour :
Code:
if touche == "b": print('ça marche un peu')
coordx,coordy = x,y
i = Fond.create_rectangle(coordx,coordy,coordx+40,coordy-10, fill="black")
while coordx <940:
print("ça marche ?")
coordx+=40
coordy+=40
Fond.coords(i,coordx,coordy,coordx+40,coordy-10)
En fait le rectangle(qui symbolise la flèche nespa) est créé mais il se déplace "trop vite".
J'ai essayé plusieurs alternative (time.sleep(ne fonctionne pas car fait pause sur tout le programme = on ne peux plus se déplacer pendant le sleep), mettre le déplacement d'attaque dans une autre fonction et mettre cette fonction dans une autre pour utiliser .after pendant cette fonction) et en vain.
Je souhaiterai donc avoir votre avis sur le sujet et si possible au moins une piste de recherche, merci d'avance