flash as3.0中的碰撞检测

我觉得应该写在主舞台上。毕竟涉及到两个阶层。

第一层的想法是对的,但是语法有问题,可以考虑用hitTestObject或者hitTestPoint进行碰撞检测。

我之前给同学写过一个游戏,游戏中大量的曲奇人从右移至左飞,玩家必须要见到所有的曲奇人,否则生命值会降低。可以参考一下这段代码(主要是懒得重写,之前写的这段笔记很好)。

里面有冲突和删码。

注意if(bmlist . length & gt;0)如果忘记这个条件,屏幕上没有子弹的时候(数组是空的)会有问题。

addEventListener(事件。ENTER_FRAME,always);

函数always(e:Event):void{

//当屏幕上出现饼干人时

if(BM list . length & gt;0){

//控制所有的cookie人

for(I = 0;我& ltbmList.lengthi++){

//饼干人向左飞

bmList[i]。x-= 5;

//当饼干人飞出屏幕的时候,

if(bmList[i].x & lt-100)

{

//删除饼干人

bg.removeChild(bmList.splice(i,1)[0]);

//生命减一

生活-;

//更新显示健康值的文本框。

ts . Life . text = " Life:"+Life;

}

//如果玩家遇到了饼干人,

if(player . hittestobject(bmList[I]){

//删除饼干人

bg.removeChild(bmList.splice(i,1)[0]);

//分数加一

mark++;

//更新显示分数的文本框。

ts . Mark . text = " Mark:"+Mark;

}

}

}

}

以上是我节目的一部分。原代码太长,这里就不贴声明变量和创建mc的部分了。

有什么不懂的可以再问。