cs_lubellule
Messages postés12Date d'inscriptionjeudi 10 mai 2007StatutMembreDernière intervention 3 août 2010
-
1 avril 2008 à 22:26
cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 2010
-
3 avril 2008 à 10:15
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
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();
cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 20102 3 avril 2008 à 10:15
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.