Pour répondre à votre question sur la rotation, les clips tournent autour de leur point d'enregistrement, pas autour de leur centre visuel. Lorsque vous créez vos clips, assurez-vous que les réticules de l'écran d'édition de symboles apparaissent au centre. Le réticule est le point d'alignement, qui définit fondamentalement où x: 0, y: 0 est sur le clip.
Il semblerait que votre question concerne vraiment l'utilisation de hitTest pour voir si la grenouille a heurté n'importe laquelle des voitures, peu importe laquelle, combien sont sur scène, etc. Donc ce que je ferais, c'est créer une classe pour la voiture avec un membre statique qui peut être un pointeur vers la grenouille, puis demandez à la classe de vérifier si elle frappe la grenouille.
Donc, pour commencer:
public class Car extends MovieClip{
public static var frog:MovieClip;
private var interval;
public function Car(){
super();
interval = setInterval(checkHit,500);
}
private function checkHit(){
if(this.hitTest(frog)){
trace("the frog hit the car");
clearInterval(interval);
//do what you need to do when the frog gets hit
}
}
}
Pour chaque voiture, vous pouvez étendre la classe du véhicule:
class Truck extends Car{
public function Truck(){
super();
}
}
class Volkswagen extends Car{
public function Volkswagen(){
super();
}
}
class Bus extends Car{
public function Bus(){
super();
}
}
Après avoir créé les classes individuelles, utilisez couplage sur vos symboles de bibliothèque pour chaque voiture . (cliquez avec le bouton droit sur le symbole, sélectionnez Liaison et tapez le nom de votre classe dans le champ Classe).
Enfin, le paramétre de grenouille à votre grenouille sur scène
var frog:MovieClip = attachMovie("frog_mc", frogMC, _root.getNextHighestDepth())
Car.frog = frog; //set the static var "frog" to your frog instance
Et maintenant, vos voitures devraient tous se vérifier s'ils frapper la grenouille.
L'autre option est de code fonction checkHit() sur la première image de chaque autre MovieClip voiture, plutôt que d'utiliser des classes pour chaque:
this.onEnterFrame = function(){
if(this.hitTest(_root.frog)){
trace("the frog hit the car");
//do what you need to do when the frog gets hit
delete this.onEnterFrame;
}
}
Merci. L'asignement a déjà dit que seul le fond pourrait être sur la scène, ce qui signifie que toutes les voitures sont dans la bibliothèque. – KdgDev