Rir de missiles en boucle

remus38 Messages postés 69 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 7 mai 2006 - 13 déc. 2004 à 09:36
cs_tom Messages postés 1511 Date d'inscription samedi 8 décembre 2001 Statut Modérateur Dernière intervention 11 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();
}

Mais ça marche pas et je comprend pas pourquoi.

12 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
13 déc. 2004 à 10:38
normal : tu dois dupliquer ton clip "Tir" avant, car à chaques fois que tu appuyes sur espace, il joue le même clip ...

De plus, dans ton cas présent, ton "attachMovie" ne sert à rien !
0
remus38 Messages postés 69 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 7 mai 2006
13 déc. 2004 à 10:53
ah bon pourquoi il sert a rien?
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
13 déc. 2004 à 12:40
car ce n'est pas un attachmovie que tu devrais faire, mais un Duplicate movie ..
là, ça devrait passer !
0
remus38 Messages postés 69 Date d'inscription vendredi 17 septembre 2004 Statut Membre Derniè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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
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 ?
0
cs_tom Messages postés 1511 Date d'inscription samedi 8 décembre 2001 Statut Modérateur Dernière intervention 11 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é...

@+Tom
0
remus38 Messages postés 69 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 7 mai 2006
13 déc. 2004 à 13:15
J'essaie de lancer le clip "tir" à partir d'un autre clip "tank" mais si je met le meme code dans "tir" alors ça fait la meme chose c'est à dire rien
0
remus38 Messages postés 69 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 7 mai 2006
13 déc. 2004 à 13:27
J'ai une erreur :
Function name expexted
lesvar.onload = function{play();}

En plus j'ai pas compris pourquoi on fait ça comme ça
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
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 !
0
remus38 Messages postés 69 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 7 mai 2006
13 déc. 2004 à 13:35
Je n'arrive pas à supprimer mes "tirs" dupliqués : j'ai utilise stop, unloadMovieClip et removeMovie et aucun ne marche
0
remus38 Messages postés 69 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 7 mai 2006
13 déc. 2004 à 13:36
Ok je vais essayer mais la j'ai cours donc ca sera pas avant 15h15
0
cs_tom Messages postés 1511 Date d'inscription samedi 8 décembre 2001 Statut Modérateur Dernière intervention 11 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)

@+tom
0
Rejoignez-nous