IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Déplacement en diagonale, par Event clavier


Sujet :

ActionScript 3

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Déplacement en diagonale, par Event clavier
    Bonjour à tous,

    J'ai parcouru les pages du forum, et je ne pense pas avoir vu de sujet qui pourraient m'aider dans mon problème. Aussi je m'excuse si je fais un doublon.

    Voilà mon soucis :

    Je déplace un clip à l'aide du clavier, pour ca j'utilise bien entendu un écouteur. Et...logiquement, je n'arrive pas à le déplacer en diagonale.

    Voici mon code, inclut dans la classe Avatar

    public function Avatar()
    {

    //création d'un sprite bidon pour mon test
    _sprite=new Sprite();
    _sprite.graphics.beginFill(0x0000ff,100);
    _sprite.graphics.drawCircle(0,0,25);
    _sprite.graphics.endFill();
    _sprite.x=50;
    _sprite.y=100;

    //ajout à la liste d'affichage
    addChild(_sprite);

    //ajout à un écouteur
    addEventListener(KeyboardEvent.KEY_DOWN, displacement);

    }

    public function displacement(evt:KeyboardEvent)
    {
    switch(evt.keyCode)
    {
    // déplacement vers la gauche
    case Keyboard.LEFT:
    _sprite.x-=depx
    break;

    // déplacement vers le haut
    case Keyboard.UP:
    _sprite.y-=depy;
    break;

    // déplacement vers la droite
    case Keyboard.RIGHT:
    _sprite.x+=depx;
    break;

    // déplacement vers le bas
    case Keyboard.DOWN:
    _sprite.y+=depx;
    break;

    // pas de déplacement
    default :
    _sprite.x+=0;
    }

    }
    Et dans mon scénario principal tout ce qu'il faut.

    J'ai déjà testé de mettre 2 écouteurs pour le même évènement...de ne pas faire de case et de tester séparément les déplacement x et y, mais je ne trouve pas.

    Il s'agit surement d'une petite astuce que je pourrais trouver en cherchant un peu (ou beaucoup), mais comme je ne dispose que d'un mois pour réaliser ce jeu, je préfère vous demander (je laisse ma fierté de coté ).

    Merci à tous.

    Pimprenelle

  2. #2
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    76
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 76
    Points : 74
    Points
    74
    Par défaut
    La réponse à ton problème se trouvait sur ce forum:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    stage.focus = this;
     
    var droite:Boolean = new Boolean ();
    var haut:Boolean = new Boolean ();
    var gauche:Boolean = new Boolean ();
    var bas:Boolean = new Boolean ();
     
    this.addEventListener(KeyboardEvent.KEY_DOWN, toucheDown);
    this.addEventListener(KeyboardEvent.KEY_UP, toucheUp);
    this.addEventListener(Event.ENTER_FRAME, deplace);
     
    function toucheDown(evt:KeyboardEvent) {
    	if (evt.keyCode == 38) {
    		haut=true;
    	}
    	if (evt.keyCode == 39) {
    		droite=true;
    	}
    	if (evt.keyCode == 37) {
    		gauche=true;
    	}
    	if (evt.keyCode == 40) {
    		bas=true;
    	}
    }
    function toucheUp(evt:KeyboardEvent) {
    	if (evt.keyCode == 38) {
    		haut=false;
    	}
    	if ( evt.keyCode == 39) {
    		droite=false;
    	}
    	if (evt.keyCode == 37) {
    		gauche=false;
    	}
    	if (evt.keyCode == 40) {
    		bas=false;
    	}
    }
    function deplace(evt:Event) {
    	if (droite) {
    		monClip.x++;
    	}
    	if (haut) {
    		monClip.y--;
    	}
    	if (gauche) {
    		monClip.x--;
    	}
    	if (bas) {
    		monClip.y++;
    	}
    }
    Est-ce que ça t'aide?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Ca marche parfaitement ! Merci beaucoup, je n'ai pas pensé à rajouter un 3e écouteur...

    Désolée également pour le doublon.

    Bonne soirée et surement à bientôt

    Pimprenelle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/07/2008, 23h36
  2. Ouvrir menu contextuel par le clavier?
    Par electrosat03 dans le forum Périphériques
    Réponses: 2
    Dernier message: 29/03/2008, 18h45
  3. Passer des infos par event
    Par kolosawoi dans le forum C#
    Réponses: 3
    Dernier message: 26/04/2007, 09h11
  4. Désactiver l'impression par raccourcis clavier et souris?
    Par delphine71 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/02/2007, 11h10
  5. wxListBox Events Clavier
    Par xolytem dans le forum wxWidgets
    Réponses: 2
    Dernier message: 30/10/2006, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo