我目前正在从头开始用 java 编写一个简单的 2D 游戏(用于学习目的)
我想控制球员投篮的速度。在那里完成的方法有效,但可以改进。如果用户按下/按住鼠标左键,则调用该方法。当用户按住按钮时它可以工作,但是当他/她释放鼠标按钮时,等待(超过 rateOfFire 时间)并尝试射击它可能会或可能不会起作用,因为 roftC 值没有得到更新玩家不射击。然后我尝试将其放入我的update()
方法中(每秒调用 60 次)。问题依然存在。我真的不知道如何解决这个问题。这是我的代码:
/**
* Used to control the rate of fire
*/
private int roftC = 0;
/**
* Shoot a Projectile
*/
protected void shoot(int x, int y, double dir) {
Projectile p = new Bomb(x, y, dir);
if (roftC % p.getRateOfFire() == 0) {
level.addProjectile(p);
}
if (roftC > 6000) {
roftC = 0;
}
roftC++; // Whether it is here or down there doesn' t make a diffrence
}
/**
*
*/
@Override
public void update() {
// roftC++;
}