Créateur de zombie-as2

Résolu
vince14evil Messages postés 16 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 23 juin 2012 - 12 oct. 2010 à 03:00
vince14evil Messages postés 16 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 23 juin 2012 - 12 oct. 2010 à 16:59
Bonjour,
Je suis présentement en développement d'un jeu zombie-survie. Cependant, j'ai un problème dans un de mes lignes de codes :S
voilà mon code :


onClipEvent (enterFrame) {

for (i=1; i<4; i++) {
setProperty("_root.zombieBot"+i, _x, _root.pt1.x);
setProperty("_root.zombieBot"+i, _y, _root.pt1.y);
}
}

Le problème est la valeur du x et y. Je ne veux pas que sa sois _root.pt1.x, mais quelque choses qui rassemblerai a ceci : "_root.pt"+i.x. ( Il va avoir plusieurs _root.pt, un pour chaque zombie =P). Quand je fais le trace ("_root.pt"+i.x); sa marque dans sortie : _root.ptIndefined

Donc, je voudrais savoir comment l'écrire correctement.

9 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
12 oct. 2010 à 16:54
déjà il ne faut pas mettre ton code sur le clip directement mais sur une frame, car s'il est sur un clip, il est "dans" le clip et donc le peut plus avoir accés aux autres éléments au niveau inférieur sans passer par "_root" ou autre joyeusetés peu appréciées ... (et qui n'existent presque plus en as3, d'ailleurs)

C'est tout un principe de code à revoir pour toi.

Peg'
3
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
12 oct. 2010 à 15:26
Bonjour,

Est-ce que tu codes toujours en flash 4, voir flash 5 ?

Peg'
0
vince14evil Messages postés 16 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 23 juin 2012
12 oct. 2010 à 15:58
Bonjour,
C'est quoi exactement flash 4 ou flash 5 ? Ce que je sais c'est que je code en actionscrip 2.0 dans adobe flash cs4.
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
12 oct. 2010 à 16:09
alors il serait temps d'utiliser la syntaxe correcte pour les assignations de propriétés.
"SetProperty" est une syntaxe dépassée depuis 10 ans maintenant, et il existe depuis une syntaxe dite "à point" plus efficace et permettant ce que tu cherches à faire :

setProperty("_root.zombieBot"+i, _x, _root.pt1.x);

devient

_root["zombieBot"+i]._x = _root.pt1.x;

Et là, bizarrement ça fonctionne...

Peg'
0

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

Posez votre question
vince14evil Messages postés 16 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 23 juin 2012
12 oct. 2010 à 16:18
Alors, se peut faire

_root["zombieBot"+i]._x = _root.("pt")+i.x;

et le zombieBot1 sera avec le pt1 et
le zombieBot2 sera avec le pt2
et ainsi de suite ???
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
12 oct. 2010 à 16:20
non, il faut respecter la syntaxe des [] si tu veux pouvoir définir une variable dans le ciblage.
Regarde ce que tu as écris et compare les deux parties de chaque côté de l'égalité ...

Peg'
0
vince14evil Messages postés 16 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 23 juin 2012
12 oct. 2010 à 16:25
Merci cela a marché !!! =D
0
vince14evil Messages postés 16 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 23 juin 2012
12 oct. 2010 à 16:49
Autre problème :S y fait vraiment c**** se code XD

quand je fait


onClipEvent (load) {
timer = 1;
}

onClipEvent (enterFrame) {

if (timer == 1) {
for (i=1; i<3; i++) {
duplicateMovieClip(_root.zombie, ["zombieBot"+i], 0);
trace(_level0["zombieBot"+i]);
timer += 1;
}
}

for (i=1; i<3; i++) {
_level0["zombieBot"+i]._x = _root["pt"+i].x;
_level0["zombieBot"+i]._y = _root["pt"+i].y;
trace(_level0["zombieBot"+i]);
}
}

dans le premier trace, il sort bien que le code a créer 2 zombie :

_level0.zombieBot1
_level0.zombieBot2

cependant, dans le deuxieme trace, il sort juste le deuxieme :

undefined
_level0.zombieBot2


Pourquoi ???

Le but est qu'il faut que le zombieBot1 reçoit les coordonné de pt1 et ansi de suite
0
vince14evil Messages postés 16 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 23 juin 2012
12 oct. 2010 à 16:59
Donc, je ne doit pas marquer onClipEvent parce que je suis plus dans un actionClip, mais dans actionImage. Alors, je marque rien ?

Merci pour tout peg', tu m'aide vraiment !!!!!

(C'est le seul bout de code qui ne marche pas lol)
0
Rejoignez-nous