Déplacer un clip avec les touches ZQSD ?! [Résolu]

cs_badben 55 Messages postés vendredi 12 mars 2004Date d'inscription 22 août 2007 Dernière intervention - 21 nov. 2005 à 02:19 - Dernière réponse : cs_badben 55 Messages postés vendredi 12 mars 2004Date d'inscription 22 août 2007 Dernière intervention
- 21 nov. 2005 à 16:37
Bonjour,



Je suis en train de développer un jeu de beat em up avec 2 personnes en simultané sur le même ordi et donc le même clavier.

Le premier joueur utilise les flèches directionnelles. J'utilise alors
une boucle par image (onEnterFrame) avec un Key.isDown(Key.RIGHT)



comme ceci :



j1.onEnterFrame = function() {

if (Key.isDown(Key.RIGHT)) {

this._x += this.vitPersoX;

} else if (Key.isDown(Key.LEFT)) {

this._x -= this.vitPersoX;

}


};



L'animation est très fluide, (l'anim est en 60fps).

Mais pour diriger l'autre personnage je dois utliser les touches ZQSD donc un ecouteur comme ceci :



var keyListener:Object = new Object();

keyListener.onKeyDown = function() {

// Touche Z avancer & reculer

if (Key.getCode() == 90) {

trace("Z");

} else if (Key.getCode() == 83) {

trace("S");

}

}



Le problème c'est que le déplacement est
très sacadé, de plus, le clip met un petit temps à se déplacer lorsque
la touche est enfoncée.

Par ailleurs le personnage ne peut pas se déplacer en diagonale car
lorsqu'on appuit sur une autre touche en même temps le personnage
s'arrête brusquement.



Avec un peu d'algo je devrait arriver à mettre une boucle enterFrame
pour avoir un mouvement fluide mais je ne sais pas si il est possible
d'appuyer sur 2 touches en même temps avec un ecouteur.



Merci davance.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
_benjy 1637 Messages postés vendredi 23 avril 2004Date d'inscription 21 février 2011 Dernière intervention - 21 nov. 2005 à 10:20
3
Merci
Salut

pourkoi changer de méthode ???
un coup tu utilise un onEnterFrame, et la fois d'apres un ecouteur ... c spé comme principe
pourkoi ne pas continuer a utilise le mm systeme que pour les fleches de direction ? mais avec le code des touche z, s, q, d ???

jl.onEnterFrame = function(){
if (Key.isDown(90)) trace ("touche z enfoncé");
else if (Key.isDown(83)) trace ("touche s enfoncé");
}

pour les diagonales, suffit de tester dans ton onEnterFrame si 2 touche sont enfoncés :

jl.onEnterFrame = function(){
if (Key.isDown(90) and Key.isDown(codeToucheD)) trace ("diagonale haut droite");
else if (Key.isDown(90) and Key.isDown(codeToucheQ)) trace ("diagonale haut gauche");
.....
}

++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter

Merci _benjy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de _benjy
cs_badben 55 Messages postés vendredi 12 mars 2004Date d'inscription 22 août 2007 Dernière intervention - 21 nov. 2005 à 16:37
0
Merci
Effectivement c'est vrai que ça marche :).



J'avais essayer de faire :

Key.isDown(Key.getCode()) = 90



Mais ça ne marchais pas.... :)



Merci.
Commenter la réponse de cs_badben

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.