Double pression touche clavier key.isDown

palancas Messages postés 2 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 6 janvier 2011 - 4 janv. 2011 à 13:44
palancas Messages postés 2 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 6 janvier 2011 - 6 janv. 2011 à 14:53
Hello à tous,
bonne année 2011 !
J'aimerais avoir un peu d'aide par rapport à l'utilisation de la méthode key.isDown

Je réalise un mini-jeu vidéo en flash, jusqu'à là tout va bien le personnage se déplace de gauche à droite
en appuyant sur les touches fléchées, tout va bien...

Le clip de mon personnage comporte plusieurs img clé :
-Debout
-Avancer
-Reculer
-Course


Comment pourrais-je dire à flash, que lorsque j'appuie deux fois sur la touche de droite mon personnage se met à courir, soit :

Hero.stance = 1;
var vitesse = 5;// vitesse normal
var double_vitesse = 10;// course rapide


////////////////FONCTION AVANCER & FONCTION COURSE//////////////////
if (Key.isDown(Key.RIGHT)) {
// heure courante
var h_c:Number = getTimer();
// délai entre deux appuis
var delai:Number = h_c-hMemoireFlecheDroite;
// mémoriser
hMemoireFlecheDroite = h_c;
//trace(delai);
if (delai<200) {
Hero_mc.gotoAndStop("Course");
Hero_mc._x += double_vitesse;
return;
Hero_mc.gotoAndStop("avance");
Hero_mc._x += vitesse;
}
}

/////////////////FONCTION RECULER/////////////////
if (Key.isDown(Key.LEFT)) {
Hero.stance = 0;
Hero_mc.gotoAndStop("recule");
Hero_mc._x -= vitesse;

///////////AUCUNE ACTION (TOUCHE RELACHEES)///////
} else if (!Key.isDown()) {
this.gotoAndStop("Stand");
}
};


j'ai associé des couleurs différente pour chaque pose clé voir le fichier fla en pièce jointe:


Jaune : Stand
Rouge : recule
Bleu clair : avance
Bleu foncé : Course

La double course ne fonctionne toujours pas (2 pression sur la flèche de droite), malgré l'insertion du Timer, peut-être l'ai-je mal insérer dans le code

Merci pour votre aide ;-)

2 réponses

jonfever Messages postés 12 Date d'inscription lundi 1 octobre 2012 Statut Membre Dernière intervention 1 octobre 2012
6 janv. 2011 à 14:32
Essaie avec une variable "0" qui deviendra "1" une fois que tu appuieras une fois sur la touche, et une deuxième fois deviendra "2" avec un if qui a pour condition "si variable = 2 alors le perso ira plus vite". Ensuite il faudrait gérer ça avec le temps du double clic avec un timer.
0
palancas Messages postés 2 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 6 janvier 2011
6 janv. 2011 à 14:53
Merci pour ta réponse, sa fait plaisir, je vais essayer ça et je te tiens au courant
merci ;)
0
Rejoignez-nous