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

Messages postés
55
Date d'inscription
vendredi 12 mars 2004
Dernière intervention
22 août 2007
- 21 nov. 2005 à 02:19 - Dernière réponse :
Messages postés
55
Date d'inscription
vendredi 12 mars 2004
Dernière intervention
22 août 2007
- 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
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Dernière intervention
21 février 2011
- 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é 90 internautes ce mois-ci

Commenter la réponse de _benjy
Messages postés
55
Date d'inscription
vendredi 12 mars 2004
Dernière intervention
22 août 2007
- 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.