cs_badben
Messages postés55Date d'inscriptionvendredi 12 mars 2004StatutMembreDernière intervention22 août 2007
-
21 nov. 2005 à 02:19
cs_badben
Messages postés55Date d'inscriptionvendredi 12 mars 2004StatutMembreDernière intervention22 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.
_benjy
Messages postés1575Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention21 février 20112 21 nov. 2005 à 10:20
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");
.....
}