Salut

,
Mon titre n'est pas très explicite donc je vais mettre a jour mon problème :
je voudrais qu'une touche , "A" dans mon cas, puisse être utilisé pour faire l'action frapper l'ennemi mais que l'action ne se répète pas si on reste appuyer sur la touche, donc qu'il fasse rappuyer sur la touche pour reattaquer l'ennemi.
► Afficher le texteMa parti du code a modifier :
Code : Tout sélectionner
Select ; attaques du joueur
Case _IsPressed(45) ; E attaque normal // Rajouter animation ( arme qui frappe )
If _GEng_Sprite_Collision($spr_Player, $spr_Zombis, 0, 0, 0)=1 Then
$ZombiLife=$ZombiLife-$PlayerDegat
If $ZombiLife<0 Then $ZombiLife=0
_GEng_Sprite_PosGet($spr_Zombis, $xz, $yz)
_GEng_Sprite_PosGet($spr_Player, $xp, $yp)
$versjoueur = _GEng_PointToPoint_Angle($xp, $yp, $xz, $yz)
$tmp2 = _GEng_AngleToVector($versjoueur, 1200)
_GEng_Sprite_AccelSet($spr_Zombis, $tmp2[0], $tmp2[1])
Else
Sleep(1)
EndIf
endselect
► Afficher le texteQuelques explication sur le code ( j'utilise Gengin.au3 qui n'est pas forcement connu de tous ) :
_GEng_Sprite_Collision($spr_Player, $spr_Zombis, 0, 0, 0)=1 : vérifie que le joueur touche l'ennemi ( car il ne faut pas que le joueur puisse toucher l'ennemi sur toute la map )
_GEng_Sprite_PosGet($spr_Zombis, $xz, $yz)
_GEng_Sprite_PosGet($spr_Player, $xp, $yp)
$versjoueur = _GEng_PointToPoint_Angle($xp, $yp, $xz, $yz)
$tmp2 = _GEng_AngleToVector($versjoueur, 1200)
_GEng_Sprite_AccelSet($spr_Zombis, $tmp2[0], $tmp2[1])
Tout ça sert à faire reculer l'ennemi d'a peu près un pas.
Merci d'avance pour votre aide

.