Probleme d'ecouteur en AS

[Résolu]
Signaler
Messages postés
4
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
16 juillet 2008
-
Messages postés
4
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
16 juillet 2008
-
Je fait un petit jeu à scénario très simple: le joueur dirige un vaisseau (haut/bas) et tir sur d'autre "méchant" vaisseaux qui arrivent en face.
Mon problème est que je n'arrive pas a trouver une solution pour que flash reconnaisse 2 touches enfoncé en même temps.
En gros on ne pas pas bouger le vaisseau et tirer en même temps.

j'ai essayé avec 2 ecouteur different...niet!

Quelqun aurais une petite idée?

Merci

5 réponses

Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
Argh, quelle soupe

je pense que tu aurais intérêt à essayer de simplifier tout çà.
Repars sur ma première idée avec le onEnterFrame
quelque chose dans le genre :

this.onEnterFrame = function() {
    if (Key.isDown(Key.UP)) {
        if (this.kleema_mc._y>=0) {
            this.kleema_mc._y -= speedKleema;
        }
    }
    if (Key.isDown(Key.DOWN)) {
        if (this.kleema_mc._y<=430) {
            this.kleema_mc._y += speedKleema;
        }
    }
    if (Key.isDown(Key.SPACE)) {
        this.kleema_mc.gotoAndStop("shoot");
        this.attachMovie("fleche", "shoot"+numShoot+"_mc", this.getNextHighestDepth());
        this["shoot"+numShoot+"_mc"]._x = this.kleema_mc._x+10;
        this["shoot"+numShoot+"_mc"]._y = this.kleema_mc._y;
        numShoot++;
        handicap();
    } else {
        this.kleema_mc.gotoAndStop("fly");
        unHandicap();
    }
};

@+
Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
Tu peux passer par un onEnterFrame

this.onEnterFrame = function() {
if (Key.isDown(Key.LEFT)){
// action fleche gauche
}
if (Key.isDown(Key.RIGHT)) {
// action fleche droite
}
if (Key.isDown(la touche de tire)){
// action tir
}
};

@+
Messages postés
4
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
16 juillet 2008

Ah j'ai trouvé! non lol j'en avais mis deja.
Merci quand même
en faite j'ai deux écouteur diffèrent (move/shoot) mais avec la même fonction keydown, du coup quand je relâché la touche de "shoot" ça arête le onEnterFrame  "move". Pas malin le damien!
Merci beaucoup
Messages postés
4
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
16 juillet 2008

euh en faite no! ça marche toujours pas voici mon code:

///Listener
function ySprit() {
    onEnterFrame = function(){
        if(Key.getCode() == Key.UP){
                if(kleema_mc._y >= 0)
                _root.kleema_mc._y -= speedKleema;
           
        }
        if(Key.getCode() == Key.DOWN){
                if(kleema_mc._y <= 430)
                _root.kleema_mc._y += speedKleema;
        }
    }
}

function stopSprit(){
    kleema_mc.gotoAndStop("fly");
    unHandicap();
    delete onEnterFrame;
}
var ecouteurY:Object= new(Object);
ecouteurY.onKeyDown = ySprit;
ecouteurY.onKeyUp = stopSprit;
Key.addListener(ecouteurY);

/// tir

function shootOn(){
        if(Key.getCode() == Key.SPACE){
            kleema_mc.gotoAndStop("shoot");
                _root.attachMovie("fleche","shoot"+numShoot+"_mc",_root.getNextHighestDepth());
                _root["shoot"+numShoot+"_mc"]._x = kleema_mc._x + 10;
                _root["shoot"+numShoot+"_mc"]._y = kleema_mc._y ;
                numShoot++;
            handicap();
        }
}
function stopShoot(){
    kleema_mc.gotoAndStop("fly");
    unHandicap();
}
var shoot:Object= new(Object);
shoot.onKeyDown = shootOn;
shoot.onKeyUp = stopShoot;
Key.addListener(shoot);
Messages postés
4
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
16 juillet 2008

Oui lol c'est ce que j'ai fait...merci beaucoup!!!