从未调用过重叠回调

加百列

我正在创建一个类似太空入侵者的游戏。

create功能上我创造敌人

enemies = game.add.group();
enemies.enableBody = true;
enemies.physicsBodyType = Phaser.Physics.ARCADE;
enemies.x = 100;
enemies.y = 50;

for (var y = 1; y < 200; y += 50) {
    for (var x = 233; x <= 800; x += 50) {
        var enemy = enemies.create(x, y, 'enemy');
        enemy.anchor.setTo(0.5, 0.5);
        enemy.body.moves = false;
    }
}

和子弹

bullets = game.add.group();
bullets.enableBody = true;
bullets.physicsBodyType = Phaser.Physics.ARCADE;
bullets.createMultiple(30, 'bullet');
bullets.setAll('anchor.x', 0.5);
bullets.setAll('anchor.y', 1);
bullets.setAll('outOfBoundsKill', true);
bullets.setAll('checkWorldBounds', true);

并设置重叠回调

game.physics.arcade.overlap(bullets, enemies, collisionHandler);

但是,不幸的是,当子弹与敌人重叠时,什么也没发生。

回调为

function collisionHandler (bullet, enemy) {
    console.log("poft");
    bullet.kill();
    enemy.kill();
}
朱利安

在您的情况下,您只需要检查两个组之间是否存在冲突,因此您将选择使用将在功能更新中评估的“重叠”方法:

function update() {
   game.physics.arcade.overlap(bullets, enemies, collisionHandler, null, this);
}

该方法接收五个参数,您可以在此处查阅

物理街机的简单示例:分组与分组

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章