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的部分了。
有什么不懂的可以再问。