Ste*_*ers 3 java timing rate libgdx
我正在用LibGDX制作2D平台游戏/射击游戏.我正在进行这个循环,按住火按钮会导致子弹从主角枪中飞出整个持续时间,同时按下按钮(快速射击).该部分完美且按预期工作.但是,我希望火速稍慢. 目前,循环只是在每个游戏框架上向世界添加一颗子弹,这意味着火速高得离谱.
我一直试图找到一个很好的方法来做到这一点,但无济于事.任何建议都将受到高度赞赏.
循环:
if (keys.get(Keys.FIRE)) {
player.setState(State.FIRING);
world.addBullet(new Bullet(1f,1f,0));
}
Run Code Online (Sandbox Code Playgroud)
你可以使用一个延迟机制,通过一个变量来减少时间,每次击中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,1f,0));
fireDelay += 0.2;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1579 次 |
| 最近记录: |