HitTest et array, comment automatiser ce code pour un jeu ?

tripounet Messages postés 9 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 1 avril 2010 - 31 mars 2010 à 17:38
tripounet Messages postés 9 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 1 avril 2010 - 1 avril 2010 à 13:54
Bonjour,
Je développe un petit jeu en as2 et j'aimerai savoir comment automatiser ce genre de requête :
var OT1:Array = new Array(_root.Obstacle1.Hittest, _root.Obstacle2.Hittest, _root.Obstacle3.Hittest);
function hitObstacleType1() {
if (_root.Character.hitTest(OT1[0] || OT1[1] || OT1[2])) {
trace("ObstacleType1");
_root.stop();
}
}


Donc comme on peut le voir, je met mes clips "_root.Obstacle1.Hittest" dans le tableau "OT1" , pour ensuite pouvoir tous les utiliser dans mon hitTest et sa fonction "hitObstacleType1".

Ca marche pas de soucis c'est déjà ça.
Cependant je dois écrire tout ça à la main et nottament la partie "OT1[0] || OT1[1] || OT1[2]"

je pense qu'avec une boucle for il y a moyen d'automatiser ce genre de truc... Mais je sais pas du tout comment faire :/

Quelqu'un pourrait m'expliquer ?

1 réponse

tripounet Messages postés 9 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 1 avril 2010
1 avril 2010 à 13:54
Bon j'ai réussi tout seul comme un grand, bizarrement le code ci dessus ne marchait plus, les || ne fonctionnait plus après différents tests(pourtant je crois avoir testé que ça fonctionnait!) ci dessous l'exemple, j'ai mêm réussi à récupérer le nom du clip touché lors de la collision, et donc d'intéragir avec lui spécifiquement.

var OT1:Array = new Array(_root.Obstacle1.Hittest, _root.Obstacle2.Hittest, _root.Obstacle3.Hittest);

function hitObstacleType1() {
for (var i = 0; i<OT1.length; i++) {
if (_root.Character.hitTest(OT1[i])) {
trace(OT1[i]);
_root.stop();
caurina.transitions.Tweener.addTween(_root.Character,{_x:_x-8, time:1, transition:"easeOutExpo"});
this.onEnterFrame = null;
}
}
}


il reste cette partie là :
var OT1:Array = new Array(_root.Obstacle1.Hittest, _root.Obstacle2.Hittest, _root.Obstacle3.Hittest);

je suis sûr qu'il y a moyen de récupérer tous les clip présents sur la frame et de les mettre automatiquement dans un array... mais comment? :) je sais pas !
0
Rejoignez-nous