为了回答您关于旋转的问题,影片剪辑围绕其注册点旋转,而不是围绕其视觉中心旋转。因此,当您创建剪辑时,请确保符号编辑屏幕上的十字准线出现在中心。十字准线是注册点,它基本上定义了 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();
}
}
创建单独的类后,在每辆车的库符号上使用链接。(右键单击符号,选择链接,然后在类字段中输入您的类名)。
最后,将青蛙成员设置为舞台上的青蛙
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;
}
}