Actionscript 3 在AS3中检测到碰撞时移除对象
我正在做一个游戏,你的玩家(枪)射击敌人(坏人)以获得分数。我已经设置好了,所以在游戏结束之前,你们有三条生命。我试图添加一个addLife函数,当你的玩家收集一个对象(西瓜)时,它就有了生命。我添加了一个运行函数addLife的计时器事件,该函数每5秒向舞台添加一个电影剪辑实例。在这个函数中,我创建了另一个名为checkCollisions的函数,该函数用于检查玩家与对象的碰撞,将对象从舞台上移除,然后添加一个生命Actionscript 3 在AS3中检测到碰撞时移除对象,actionscript-3,flash,collision,removechild,Actionscript 3,Flash,Collision,Removechild,我正在做一个游戏,你的玩家(枪)射击敌人(坏人)以获得分数。我已经设置好了,所以在游戏结束之前,你们有三条生命。我试图添加一个addLife函数,当你的玩家收集一个对象(西瓜)时,它就有了生命。我添加了一个运行函数addLife的计时器事件,该函数每5秒向舞台添加一个电影剪辑实例。在这个函数中,我创建了另一个名为checkCollisions的函数,该函数用于检查玩家与对象的碰撞,将对象从舞台上移除,然后添加一个生命 var timer2:Timer = new Timer(5000); ti
var timer2:Timer = new Timer(5000);
timer2.addEventListener(TimerEvent.TIMER, addLife);
timer2.start();
var watermelon:waterMelon = new waterMelon();
function addLife(evt:TimerEvent):void{
watermelon.x = Math.random() * stage.stageWidth;
watermelon.y = Math.random() * stage.stageHeight;
addChild(watermelon);
watermelon.push(waterMelon);
checkCollision();
}
function checkCollision(){
if (gun.hitTestObject(watermelon)){
removeChild(watermelon);
lives++;
livesDisplay.gotoAndStop(livesDisplay.currentFrame-1);
}
}
代码中唯一有效的部分是将西瓜添加到舞台上,但是当我的播放器与西瓜碰撞时,它不会从舞台上移除。有人能告诉我,当我的西瓜与玩家相撞时,我是如何让它完全从舞台上移开的,并给我的玩家增加生命。再一次,每个物体都等于这个枪=玩家,西瓜=对象/西瓜,生活=生活,生活显示=生活的物理显示。您试图从舞台上删除阵列(西瓜),而不是对象(西瓜)。尽管从外观上看,您使用的是阵列,因此您必须从阵列中找到与枪碰撞的对象的索引。您可以使用for循环来执行此操作
for (melonCount:int = 0; melonCount>watermelon.length;melonCount--)
{
if (gun.hitTestObject(watermelon[melonCount]))
{
removeChild(watermelon[melonCount])
watermelon.splice(melonCount, 1)
melonCount--
}
}
西瓜是什么?推(西瓜);什么意思?