【问题标题】:How to kill bullet after a certain of distance?一定距离后如何杀死子弹?
【发布时间】:2022-01-16 02:48:09
【问题描述】:

如何在一定时间或一定距离后杀死子弹?我正在使用 JavaScript 和 Phaser 3

if (keyA.isDown && time > lastFired || isDown && time > lastFired) {
          
            var bullet = bullets.create(player.x , player.y, 'bullet');
            
            bullet.setVelocity( -800, 0);
            lastFired = time + 90;

        }

【问题讨论】:

  • 你在使用游戏框架吗?您使用什么语言?
  • 嗨,我正在使用 Javascript,phaser3

标签: javascript game-engine phaser-framework


【解决方案1】:

如果它应该在一段时间后,你可以做这样的事情。 (这里有更多来自文档的详细信息:from the Docs

但老实说,我不知道这是否会影响性能。

 ...  
// the 500 ist the timeout in ms
this.time.delayedCall(500, () => bullet.destroy();  
....
(创建项目符号后添加此行)

或者你可以使用时间事件

this.time.addEvent({
    delay: 500,
    callback: ()=>{
        bullet.destroy()
    },
    loop: false
});

远距离摧毁:取决于是一颗子弹还是多颗子弹。您可以将子弹添加到group 并检查update 函数中的距离,它太远了,您会破坏它/它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 2011-07-06
    • 1970-01-01
    • 2013-07-24
    相关资源
    最近更新 更多