Привет, ребята. Я делаю эту простую игру, состоящую из двух игроков на арене. У каждого игрока есть оружие, которое стреляет снарядом.Я хочу, чтобы каждый раз, когда снаряд поражал блок или врага, его hp уменьшается на 1, а пуля, которая касалась врага или блока, исчезала.
Я пытался использовать продолжительность жизни, чтобы убить пулю (продолжительность жизни= 0, когда пуля перекрывает врага), но безуспешно.Я использую bullet.kill()
, но, похоже, он тоже не работает.
Как я сделал оружие:
weapon = game.add.weapon(10, 'bullet');
weapon.bulletKillType = Phaser.Weapon.KILL_WORLD_BOUNDS; weapon.bulletSpeed = 200;
weapon.fireRate = 1000;
weapon.trackSprite(this.player, 0, 0, false);
weapon2 = game.add.weapon(10, 'bullet');
weapon2.bulletKillType = Phaser.Weapon.KILL_WORLD_BOUNDS;
weapon2.bulletSpeed = 200;
weapon2.fireRate = 1000;
weapon2.trackSprite(this.player2, 0, 0, false);
Деление:
game.physics.arcade.overlap(weapon.bullets, this.player2, this.hitP2, null, this);
game.physics.arcade.overlap(weapon.bullets, this.blocks, this.hitBlock1, null, this);
game.physics.arcade.overlap(weapon2.bullets, this.player, this.hitP1, null, this);
game.physics.arcade.overlap(weapon2.bullets, this.blocks, this.hitBlock2, null, this);
Функции попадания:
hitBlock: function(bul, blk){
bul.kill();
},
hitP: function(bul, enm){
// sfx de acerto
p1HP -= 1;
this.txtP1HP.text = 'P1 HP: ' + p1HP;
bul.kill();
if(p1HP < 1){
this.player.kill();
}, this);
Что происходит сейчас, когда пуля попадает в противника, он становится невидимым, а пуля продолжает работать до тех пор, пока не выйдет за пределы.
Почему метод kill не работает должным образом в этомодин?Почему враг становится невидимым?