Déplacement au clavier (AS3)

cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 - 11 déc. 2011 à 16:41
cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 - 16 déc. 2011 à 15:28
Bonjour a tous,

Je sais le sujet fût traité beaucoup de fois mais malgré tous les topics je n'ai pas trouvé de solutions.

Voila mon problème. Je réalise actuellement un shoot'em up horizontal et je le dirige a la souris. Mais je voudrais aussi que les fléches du clavier soit prisent en compte aussi.

J'ai déjà fais ca comme code, mais ca ne marche pô.

Joueur.as
package {
import flash.display.*;
import flash.events.*;
import flash.ui.Keyboard;

public class Joueur extends MovieClip {
public var vx:Number;
public var vy:Number;

public function bouger() {
this.x=this.x+this.vx;
this.y=this.y+this.vy;
this.vx=this.vx*0.9;
this.vy=this.vy*0.9;
}

     	public function Souris(e:MouseEvent) {
this.x = this.parent.mouseX;
this.y = this.parent.mouseY;
     	}

public function Clavier(e:KeyboardEvent):void {
switch (e.keyCode) {
case Keyboard.RIGHT :
this.vx+=3;
break;
if (this.vx>9) {
this.vx=9;
}
case Keyboard.LEFT :
this.vx-=3;
break;
if (this.vx<-9) {
this.vx=-9;
}
case Keyboard.UP :
this.vy-=3;
break;
if (this.vy<-9) {
this.vx=-9;
}
case Keyboard.DOWN :
this.vy+=3;
break;
if (this.vy>9) {
this.vx=9;
}
}
}
}
}


Scène principale (ou StarField.fla)
import flash.display.*;
import flash.ui.Keyboard;
import flash.events.*;

var xjeu:Number = 0;
var yjeu:Number = 0;
var largjeu:Number = 900;
var hautjeu:Number = 500;

/////////////// Joueur ////////////////

var j:Joueur = new Joueur();
this.addChild(j);

j.x = 150;
j.y = 300;

stage.addEventListener(MouseEvent.MOUSE_MOVE,j.Souris);
stage.addEventListener(KeyboardEvent.KEY_DOWN,j.Clavier);


Quelqu'un aurait une idée ? Ceci est un projet universitaire et il est à rendre a la fin de la semaine.

Merci d'avance de vos réponses.

2 réponses

aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
13 déc. 2011 à 12:13
Bonjour,
il me semble, que tu n'as pas indiqué les keycodes de tes touches

place un trace(e.keyCode) dans ta fonction événementiel, comme cela tu aura la valeur de tes touches a placer pour chaque "case"

cordialement
0
cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 1
16 déc. 2011 à 15:28
J'ai vu en AS3 que justement en mettant .LEFT, .RIGHT ... ca marchait.

Mais bon finalement jai fais ca a la souris.
0