gpt4 book ai didi

java - 如何限制KeyEvent捕获速度

转载 作者:行者123 更新时间:2023-12-01 14:52:37 24 4
gpt4 key购买 nike

我正在制作一个相当基本的自上而下的 2D 射击游戏(例如《太空入侵者》),但我遇到了 KeyEvent 每秒处理太多事件的问题。

我有这个:

if (e.getKeyCode() == KeyEvent.VK_SPACE){
shoot();
}

shoot() 创建一颗子弹并将其设置为向上发射,但如果您只是按住空格键发射数百颗子弹,就会出现问题,从而使游戏变得微不足道。

有没有办法让它每秒只处理一到两次按键,而忽略其余的?

最佳答案

您可以使用手工制作的计时器,这样它既可以是轻量级的,也可以是易于定制的,例如:

long lastShoot = System.currentTimeMillis();
final long threshold = 500; // 500msec = half second

public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SPACE)
{
long now = System.currentTimeMillis();
if (now - lastShoot > threshold)
{
shoot();
lastShoot = now;
}
}
}

关于java - 如何限制KeyEvent捕获速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14692711/

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