为什么子弹与敌人的碰撞功能不起作用?



尝试使用game.physics.arcade.overlap()来处理地精和子弹之间的碰撞。

thanks in advance.

function update() {
    game.physics.arcade.overlap(bullets, goblinSprite, bulletHitEnemy, null, this);
    //Shoot on LeftMouse click
    game.input.onDown.add(fire, this);             
}
function bulletHitEnemy (goblinSprite, bullet) {
    console.log('collision');
    bullet.kill();
    goblinSprite.kill();
}
function fire() {
    if (game.time.now > nextFire && bullets.countDead() > 0)
    {
        nextFire = game.time.now + fireRate;
        var bullet = bullets.getFirstDead();
        bullet.reset(sprite.x + 5, sprite.y + 5);
        game.physics.arcade.moveToPointer(bullet, 500);
    }
}

我以前也遇到过类似的问题。我通过使用"this"调用碰撞函数来修复它。例如,而不是:

 game.physics.arcade.overlap(bullets, goblinSprite, bulletHitEnemy, null, this);

试题:

 game.physics.arcade.overlap(bullets, goblinSprite, this.bulletHitEnemy, null, this);

希望对你有帮助。

最新更新