чтобы ответить на ваш вопрос о вращении, мувиклипы вращаются вокруг своей точки регистрации, а не вокруг своего визуального центра. Поэтому, когда вы создаете свои клипы, убедитесь, что перекрестие на экране редактирования символов отображается в центре. Перекрестие — это точка регистрации, которая в основном определяет, где x: 0, y: 0 находится на клипе.
Похоже, ваш вопрос действительно о том, как использовать hitTest, чтобы увидеть, попала ли лягушка в какую-либо из машин, независимо от того, какая из них, сколько их на сцене и т. д. Итак, что бы я сделал, это создать класс для машины с статический член, который может быть указателем на лягушку, а затем класс проверяет, не попадает ли он в лягушку.
Итак, для начала:
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
}
}
}
Для каждого отдельного автомобиля можно расширить класс Car:
class Truck extends Car{
public function Truck(){
super();
}
}
class Volkswagen extends Car{
public function Volkswagen(){
super();
}
}
class Bus extends Car{
public function Bus(){
super();
}
}
После создания отдельных классов используйте Linkage для символов вашей библиотеки для каждого автомобиля. (щелкните правой кнопкой мыши по символу, выберите «Связь» и введите имя своего класса в поле «Класс»).
Наконец, установите член лягушки на свою лягушку на сцене.
var frog:MovieClip = attachMovie("frog_mc", frogMC, _root.getNextHighestDepth())
Car.frog = frog; //set the static var "frog" to your frog instance
А теперь все ваши машины должны сами проверить, не попали ли они в лягушку.
Другой вариант — закодировать функцию checkHit() в первом кадре каждого отдельного автомобильного мувиклипа, а не использовать классы для каждого:
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;
}
}
person
nerdabilly
schedule
04.05.2009