Jeux en flash

Signaler
Messages postés
12
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
3 août 2010
-
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Bonsoir :) voila j'essaye d'adapter un petit jeu en flash en reprenant un code trouvé sur le net mais je rencontre des problèmes

http://lucile.deslandes.free.fr/perso/jeuluvlintot.html voici l'adresse de mon jeu

je voudrai faire que ma pizza perde une vie si il y a collision avec une fourchette ou un couteau mais voila j'y arrive pas :(
hauteur=Stage.height;
largeur=Stage.width;
_root.score.text = 0;
vie=5;
_root.life.text = vie;
    
//tableau contenant le nom des instances ennemies
ennemi=new Array();
couvert=new Array();
//Compteur pour les balles
pizza.currentItem=0;
//code exécuté en boucle pour la pizza
pizza.onEnterFrame=function()
{
    //Gestion du déplacement gauche-droite
if(this._x>-28){
if(Key.isDown(Key.LEFT)){this._x -= 20;}
}
if(this._x<largeur-50){
if(Key.isDown(Key.RIGHT)){this._x +=20;}
}
if(this._y>0){
if(Key.isDown(Key.UP)){this._y-=20;}
}
if(this._y<hauteur-40){
if(Key.isDown(Key.DOWN)){this._y+=20;}
}
//La touche espace déclenche un tir
    if(Key.isDown(Key.SPACE))
    {        
     //On ajoute le clip sur la scène et on le positionne
        _root.attachMovie("champi","champi"+this.currentItem,100+this.currentItem);    
        _root["champi"+this.currentItem]._x=this._x+30;
        _root["champi"+this.currentItem]._y=this._y-70;
        //En boucle, la balle va vers le haut de l'écran
        //et on regarde si on touche un ennemi
        _root["champi"+this.currentItem].onEnterFrame=function()
        {
            if(this._y<0) {this.removeMovieClip();}                
            //Ennemi est un tableau associatif contenant le
            //nom d'instance de tous les ennemis envoyés
            //On parcourt le tableau pour voir si on touche
            //un des ennemis ou non
            for(value in couvert)
            { 
                //hittest détecte la collision
                if(_root[value].hitTest(this))
                { 
                    //ici, la collision est détectée                    
                    //Suppression de l'ennemi
                    _root[value].removeMovieClip();
                    //suppression de la clé dans le tab. assoc.
                    delete(_root.couvert[value]);                        
                    //Suppression de la balle
                    this.removeMovieClip();    
                     _root.score.text ++;
                    
                }                
            }
            for(value in ennemi)
            { 
                //hittest détecte la collision
                if(_root[value].hitTest(this))
                {
                    //ici, la collision est détectée                    
                    //Suppression de l'ennemi
                    _root[value].removeMovieClip();
                    //suppression de la clé dans le tab. assoc.
                    delete(_root.ennemi[value]);                        
                    //Suppression de la balle
                    this.removeMovieClip();    
                     _root.score.text ++;
                    }                
            }
            
            this._y-=5;
        }
        this.currentItem++;
    }
}
//Ennemis est le MC qui va envoyer les ennemis
//tout au long de l'animation à raison de 1 ennemi par sec.
ennemis.timeStarted=getTimer()/1000;        
ennemis.interval=1;
ennemis.item=1;
ennemis.onEnterFrame=function()
{
    if((getTimer()/1000) > (this.timeStarted+this.interval))
    {   
        //si l'intervalle est écoulé, on envoie un nouvel ennemi
        _root.attachMovie("fourchette","fourchette"+this.item,200+this.item);
        //On ajoute la clé dans le tab. assoc.
        _root.ennemi["fourchette"+this.item]=1;        
        _root["fourchette"+this.item]._x=random(largeur);        
        //En boucle pour l'ennemi
        _root["fourchette"+this.item].onEnterFrame=function()        
        {            
        
    duplicateMovieClip ("pik" , "pik"+this.item, 1000+this.item);
    _root["pik"+this.item]._x = _root["fourchette"+this.item]._x;
    _root["pik"+this.item]._y = _root["fourchette"+this.item]._y;
    
    
          //On le fait descendre de 10px
            this._y+=8;            
            //Si _y > 300, on ne l'a pas touché et donc
            //on a perdu
            if(this._y>hauteur)
            {            
                         vie -= 1;
                     _root.life.text =vie;
                     if(vie <0){gotoAndStop("gameover");}
                this.removeMovieClip();
                
            }            
        }        
        this.item+=1;                    
        this.interval+=1;
    }
}

couverts.timeStarted=getTimer()/1000;        
couverts.interval=1;
couverts.item=1;
couverts.onEnterFrame=function()
{
    if((getTimer()/1000) > (this.timeStarted+this.interval))
    {
        //si l'intervalle est écoulé, on envoie un nouvel ennemi
        _root.attachMovie("couteau","couteau"+this.item,2000+this.item);
        //On ajoute la clé dans le tab. assoc.
        _root.couvert["couteau"+this.item]=1;        
        _root["couteau"+this.item]._x=random(largeur);        
        //En boucle pour l'ennemi
        _root["couteau"+this.item].onEnterFrame=function()        
        {                            
          //On le fait descendre de 10px
            this._y+=10;            
            //Si _y > 300, on ne l'a pas touché et donc
            //on a perdu
            if(this._y>hauteur)
            {            
                  vie -= 1;
                     _root.life.text =vie;
                     if(vie <0){gotoAndStop("gameover");}
                this.removeMovieClip();
                
            }            
        }        
        this.item+=1;                    
        this.interval+=1;
    }
}
stop();


j'ai essayer de mettre ça sur mon clip pizza

if(this.hitTest(_root.["fourchette"+this.item]) ==true)
            {trace("boum");}

mais il me dit qu'il ya une erreur :s je trouve pas laquelle

si quelqu'un pouvais m'aider

2 réponses

Messages postés
12
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
3 août 2010

j'aimerai aussi que lorsqu'on appuie sur espace le tir soit automatique mais que ça tire qu'une fois par appuie
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Salut,
juste une chose... car j'avoue que la longueur du code me rebute, il ya un truc que je ne vois pas don ton code... les actions trace
Quand quelque chose ne va pas, je fous des actions trace partout, pour testes mes variables, mes fonction, si elles sont appelées...
C'est le meilleur moyen de repérer ce qui ne vas pas, ce qui te permettra de cerner plus précisemment ton problème... et de trouver l'erreur.
D'ailleur, s'il te dit qu'il y a une erreur, il devrait t'indiquer un peu où elle se trouve.
Tiens nous au courant.

Tout vient à qui sait attendre