私は小さなspace invadersのようなゲームを作成しています。弾丸は敵、何も重なっていないときコールバックが重複しないようにしました
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();
}
phaser.io/examples/v2/arcade-physics/group-vs-group) –
これはそれです!回答として投稿してください。 – Gabriel