cs_milembar
Messages postés9Date d'inscriptionmercredi 15 octobre 2008StatutMembreDernière intervention24 juin 2011
-
2 juin 2010 à 20:00
cs_ourso
Messages postés92Date d'inscriptionmercredi 11 octobre 2006StatutMembreDernière intervention 5 décembre 2010
-
6 juin 2010 à 15:09
bonjours, alors voila, je demande votre aide car j'ai créée une fonction qui supprime l'objet dans lequel l'objet point entre en collision, ce qui a pour effet de le supprimer et de faire un effet ricoché avec inversement de la vitesse, tout va quand jusqu'au moment ou point rencontre 2 objets a la fois ce qui annule l'effet de retours, il faudrait qu'il considère qu'il n'y a eu qu'une seul et même collision mais pas moyen d'y arrivé. je vous donne le morceau de script concerné merci d'avance.
function onshoot(e:Event):void {
if (bug_end != true){
var child:DisplayObject = e.currentTarget as MovieClip;
if(child.hitTestObject(point)) {
child.parent.removeChild(child);
vpy = vpy * -1;
removeEventListener(Event.ENTER_FRAME,onshoot);
}
}
}
cs_ourso
Messages postés92Date d'inscriptionmercredi 11 octobre 2006StatutMembreDernière intervention 5 décembre 2010 6 juin 2010 à 15:09
Il manque toute une partie de ton code pour pouvoir t'aider.
Est-on dans la classe principale ou celle d'un de tes objet testant une collision ?
Pourquoi l'enter frame est placé sur la racine de ton code ? C'est un jeu du type "l'utilisateur doit éviter quelque chose" ?
qui est "child" ?
qui est "point" ?
Je comprends pas pourquoi currentTarget est utilisé. on l'utilise la phase de capture ou de bouillonnement et plutôt pour un MouseEvent. e.currentTarget est l'objet sur lequel tu as placé ton écouteur. ici la classe dans laquelle tu te trouve. Donc e.currentTarget t'es accessible sans passer par les propriétés de l'évènement. Est tu sur de bien maitriser les tenants et aboutissants des propriétés que tu utilise et la notion de "scope" (étendue des variable et foncions) ?
Une source de bugs possible.
Enfin apparamment tu as placé un booléen qui se met à false lors d'une action... peut être dans ta fonction de retour mais à laquelle tu ne fais pas référence ici.
J'aurais fais comme cela pour éviter que la fonction ne soit déclenchée : un booléen dans la classe qui se place à false dès que ton bloc d'instruction à été effectué.