Bonjour à tous,
Je fais actuellement un Survivor où le joueur peut tirer des missiles pour intercepter des autres missiles ennemis qui l'attaquent.
Mes missiles éclatent là ou le joueur avait cliqué et lors de l'explosion, un movieclip de forme circulaire apparait. Il me sert en fait a gérer les dégâts de zone et sera invisible dans la version finale. Il reste visible 5 frames après l'explosion du missile allié, et est sensé détruire tous les missiles ennemis qui le touchent.
les missiles alliés tirés par le joueur son dans un fichier nommé MissileSimple.as et les ennemis MissileEnnemis.as
En tracant l'ExplosionRadius (qui est le cercle de 5 frames), je m'appercois qu'il le reconnait, il existe. Il me dit "Object Radius" (il s’appelle Radius dans la biblio et ExplosionRadius pour le script)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var ExplosionRadius = MovieClip(parent).ExplosionRadius; if (this.hitTestObject(ExplosionRadius)) { trace("Hit"); this.removeEventListener(Event.ENTER_FRAME, ChildPosition); this.parent.removeChild(this); }
Dans ce code (fichier des missiles ennemis), la commande de remove marche car elle est utilisée plus haut (quand le missile touche le shield ou le sol). en revanche, la commande hitestObject ne marche pas. Il a pas l'air de comprendre ce que je veux lui dire. A noter que ce If/then est contenu dans un Listener qui check chaque frame, donc ça ne vient pas de ça.
Quelqu'un sait comment je peux faire pour que les collisions marchent entre les children ? De plus, je sais pas si c'est important mais le joueur peut tirer plusieurs missiles simultanément et il y a plusieurs missiles ennemis à l'écran.
Merci d'avance !
Partager