gpt4 book ai didi

java - 在镜头之间添加延迟(按键)

转载 作者:行者123 更新时间:2023-12-02 03:05:17 27 4
gpt4 key购买 nike

我有一个游戏,当按下一个键时,您可以通过将子弹添加到 Controller 类来发射子弹。这是代码来自 KeyPressed();

else if (key == KeyEvent.VK_Q && !is_shooting)
{
is_shooting = true;
c.addBullet(new Bullet(p.getX(), p.getY(), this));
}

来自 KeyReleased:

        else if (key == KeyEvent.VK_Q)
{
is_shooting = false;
}

事实上,你可以随心所欲地射击,is_shooting 只是在按住键时停止。我希望在射击后有一段冷却时间,然后才能进行下一次射击。我尝试使用 Thread.Sleep 但这也会使角色在冷却期间无法移动。如有任何帮助,我们将不胜感激。

最佳答案

由于上下文如此之少,很难 100% 确定解决您眼前问题的最佳解决方案。

我过去做过的一件事是,记录触发特定事件的时间,将时间差异与上次触发时间进行比较,如果超过了某个时间阈值,则允许操作发生,否则忽略它

类似于...

long timeNow = System.currentTimeMillis();
long time = timeNow - timeOfLastProjectile;
if (time < 0 || time > 1000) {
timeOfLastProjectile = timeNow;
// Trigger associated action
}

举个例子。

我可能使用这种方法的一个原因是,如果我有很多需要处理的传入事件,并且不想触发新线程或计时器来管理系统资源,但这种决定需要问题的额外背景。

也同意 Hovercraft Full Of Eels 的观点,你最好使用 Key Bindings API

关于java - 在镜头之间添加延迟(按键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41842863/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com