remus38
Messages postés69Date d'inscriptionvendredi 17 septembre 2004StatutMembreDernière intervention 7 mai 2006
-
13 déc. 2004 à 09:36
cs_tom
Messages postés1511Date d'inscriptionsamedi 8 décembre 2001StatutModérateurDernière intervention11 juin 2009
-
13 déc. 2004 à 14:46
Salut,
Je suis en train de créer un jeu où l'on dirige un tank qui tire des missiles verticalement. J'ai simplement creer un clip où le missile part tout droit et j'aimerai pouvoir en tirer plusieurs.
Pour mon tank, j'ai donc ecrit le code suivant (sur les conseils de qq sur ce forum) :
onClipEvent(load){
var nbmissiles;
nbmissiles=0;
}
onClipEvent(enterFrame){
if (key.isDown(Key.SPACE)){
_root.attachMovie("tir","tir"+nbmissiles,nbmissiles);
nbmissiles++;
_root["tir+nbmissiles]._x = this._x;
_root["tir+nbmissiles]._y = this._y;
_root["tir+nbmissiles].play();
}
remus38
Messages postés69Date d'inscriptionvendredi 17 septembre 2004StatutMembreDernière intervention 7 mai 2006 13 déc. 2004 à 13:01
Oui d'accord mais ca marche pas non plus avec duplicateMovieClip. Et je comprend pas pourquoi, ça me semble correct.
J'ai le meme code que le premier mais avec duplicate a la place. Je crois que le probleme vient quand je fais _root["tir"+nbmissiles]
On dirait que ça ne correspond à rien
Vous n’avez pas trouvé la réponse que vous recherchez ?
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 13 déc. 2004 à 13:12
Comme il y a des evènements de clips ("onClipEvent"), tout ton code se passe dans le clip en question, c'est à dire que tu dipliques "tir" dans ton clip, alors que tu l'appelles par _root pour changer tes _X et _Y .. tu ne crois pas qu'il y a un soucis ?
à quel niveau se trouve ton clip "tir" par rapport au clip sur lequel se trouve ce code ?
cs_tom
Messages postés1511Date d'inscriptionsamedi 8 décembre 2001StatutModérateurDernière intervention11 juin 2009 13 déc. 2004 à 13:13
c'est parce que tu fais mal passer tes variables. ils doivent bien exister, mais doivent AMHA se trouver au coordonnées 0,0. (As-tu fait des tests pour savoir si les clips existaient? => ctrl-entrée => lister les variables)
essaie ca:
onClipEvent(load){
var nbmissiles=0;
var lesvariables = new Object();
}
onClipEvent(enterFrame){
if (key.isDown(Key.SPACE)){
lesvariables._x = this._x;
lesvariables._y = this._y;
lesvariables.onLoad = function{play();}
_root.attachMovie("tir","tir"+nbmissiles,nbmissiles,lesvariables);
nbmissiles++;
}
Juste un truc, tu devrais limiter le nombre de clips, car je ne sais pas si ils se detruisent d'eux-meme ou pas...
Essaie ca et rajoute un ou deux trace pour savoir si ton code est joué, si les variables passent, si le clip tir est attaché...
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 13 déc. 2004 à 13:33
ça devient franchement le bordel tes explications .. t'as pas la possibilité de mettre le FLA en ligne pour qu'on regarde direct, car là on ne comprend plus rien !
cs_tom
Messages postés1511Date d'inscriptionsamedi 8 décembre 2001StatutModérateurDernière intervention11 juin 2009 13 déc. 2004 à 14:46
t'as pas respecté la casse: onLoad avec un L majuscule!
Et Peut etre que j'ai oublié un ;
lesvar.onLoad = function{play();};
On fait ca parce que les variables ecrites comme tu as fait ne passent pas sur le plug-in MAC (constatation perso), et ne passe qu'une fois sur deux avec un PC (des fois ca passe, et des fois, ca veut rien comprendre, surtout avec une boucle for : y a trop d'aléatoire).
De plus avec cette méthode, tu n'as plus aucun probleme d'adressage pour le clip.
De la meme maniere, tu peux mettre un onEnterframe, et donc avoir un clip sur lequel tu peux mettre le code que tu veux... (et donc virer le code qui marche avec des play(), c'est de la perte de process)