加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – LibGDX – 调整循环中火焰速率的最佳方法

发布时间:2020-12-15 04:42:11 所属栏目:Java 来源:网络整理
导读:我正在用LibGDX制作2D平台游戏/射击游戏.我正在进行这个循环,按住火按钮会导致子弹从主角枪中飞出整个持续时间,同时按下按钮(快速射击).该部分完美且按预期工作.但是,我希望火速稍慢.目前,循环只是在每个游戏框架上向世界添加一颗子弹,这意味着火速高得离谱.
我正在用LibGDX制作2D平台游戏/射击游戏.我正在进行这个循环,按住火按钮会导致子弹从主角枪中飞出整个持续时间,同时按下按钮(快速射击).该部分完美且按预期工作.但是,我希望火速稍慢.目前,循环只是在每个游戏框架上向世界添加一颗子弹,这意味着火速高得离谱.

我一直试图找到一个很好的方法来做到这一点,但无济于事.任何建议都将受到高度赞赏.

循环:

if (keys.get(Keys.FIRE)) {
    player.setState(State.FIRING);
        world.addBullet(new Bullet(1f,1f,0));
}

解决方法

你可以使用一个延迟机制,通过一个变量来减少时间,每次击中0,你进行一次射击并重置时间,例如当你希望玩家每0.2秒射击时为0.2f:

private float fireDelay;

public void render(float deltaTime) {
    fireDelay -= deltaTime;
    if (keys.get(Keys.FIRE)) {
        player.setState(State.FIRING);
        if (fireDelay <= 0) {
            world.addBullet(new Bullet(1f,0));
            fireDelay += 0.2;
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读