Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在AS3中检测到碰撞时移除对象_Actionscript 3_Flash_Collision_Removechild - Fatal编程技术网

Actionscript 3 在AS3中检测到碰撞时移除对象

Actionscript 3 在AS3中检测到碰撞时移除对象,actionscript-3,flash,collision,removechild,Actionscript 3,Flash,Collision,Removechild,我正在做一个游戏,你的玩家(枪)射击敌人(坏人)以获得分数。我已经设置好了,所以在游戏结束之前,你们有三条生命。我试图添加一个addLife函数,当你的玩家收集一个对象(西瓜)时,它就有了生命。我添加了一个运行函数addLife的计时器事件,该函数每5秒向舞台添加一个电影剪辑实例。在这个函数中,我创建了另一个名为checkCollisions的函数,该函数用于检查玩家与对象的碰撞,将对象从舞台上移除,然后添加一个生命 var timer2:Timer = new Timer(5000); ti

我正在做一个游戏,你的玩家(枪)射击敌人(坏人)以获得分数。我已经设置好了,所以在游戏结束之前,你们有三条生命。我试图添加一个addLife函数,当你的玩家收集一个对象(西瓜)时,它就有了生命。我添加了一个运行函数addLife的计时器事件,该函数每5秒向舞台添加一个电影剪辑实例。在这个函数中,我创建了另一个名为checkCollisions的函数,该函数用于检查玩家与对象的碰撞,将对象从舞台上移除,然后添加一个生命

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--
 }
}
西瓜是什么?推(西瓜);什么意思?