【发布时间】:2019-06-21 01:15:05
【问题描述】:
大家好,我正在制作这个简单的游戏,其中包含两个玩家在一个竞技场中 每个玩家都有一个发射射弹的武器。 我想要的是,每次弹丸击中一个方块或敌人时,它的生命值减少1并且碰到敌人或方块的子弹消失。
我尝试使用 Lifespan 杀死子弹(当子弹与敌人重叠时,lifespan = 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 方法在这个中不能正常工作? 为什么敌人会隐形?
【问题讨论】:
标签: javascript phaser-framework