想做一个小游戏,随机生成一些物体,物体从上到下掉落。当主人公bread碰到蟑螂(crap1)时会输掉游戏。
要如何判断bread碰撞到的是蟑螂(crap1)呢?按下面的代码输出root["food"]是object food1~3/crap1 但输出root["mc"]时却全都是undefined。请问我该如何修改?
部分代码如下:
//创建事件响应函数,该函数用于随机生成food
function createFood(event:TimerEvent):void
{//生成随机数
var i:int = Math.round(Math.random() * 4);
//根据随机数实例化food对象
if (i == 1)
{
food = new food1();
}
else if (i==2)
{
food = new food2();
}
else if (i==3)
{
food = new food3();
}
else
{
food=new crap1();
}
//添加事件侦听器侦听food对象的enterFrame事件;
food.addEventListener(Event.ENTER_FRAME,startDown);
//随机产生food对象的x坐标;
food.x = Math.round(Math.random() * 904 +140);
//向舞台上添加food对象
food.scaleX = 5;
food.scaleY = 5;
stage.addChild(food);
//trace(root ["food"]);
}
//food下落
function startDown(event:Event):void
{
//定义影片剪辑实例将其指定为当前的food对象
var mc:MovieClip = event.target as MovieClip;
//food对象每次向下移动10个像素
mc.y += 10;
//检测是否发生了碰撞,只有碰撞发生在计时时段内时才执行下面的代码
if (mc.hitTestObject(bread) )
{
//移除food对象
stage.removeChild(mc);
trace(root["target"]);
//移除该水果对象的事件侦听器;
mc.removeEventListener(Event.ENTER_FRAME,startDown);
}
//如果水果离开了舞台
if (mc.y > 1300)
{
//移除该水果对象的事件侦听器
mc.removeEventListener(Event.ENTER_FRAME,startDown);
//删除该水果对象
stage.removeChild(mc);
}
}