【问题标题】:Java KeyBindings input delayJava KeyBindings 输入延迟
【发布时间】:2014-07-30 19:35:14
【问题描述】:

我不太确定如何措辞这个问题的标题。基本上,我正在使用 JFrame 制作空间入侵者,并使用 KeyBindings 进行键盘输入。键绑定工作正常,我可以毫无问题地移动船。但是,如果我按住一个键,船会移动 5 个像素,然后暂停大约半秒,之后它会平稳移动。按下该键时,我的代码会增加船的速度(每帧将船移动 5-10 个像素)。我假设这是键盘输入的常见和正常行为,但我希望船能够始终平稳地移动。有没有办法做到这一点?

(注意。我的代码很长,因为我假设这是正常的事情,所以我不会马上发布。但是,如果您确实需要查看它,请发表评论,我'将编辑它。)

【问题讨论】:

    标签: java swing keyboard-events key-bindings


    【解决方案1】:

    延迟取决于操作系统。每个操作系统都定义了自己的“重复率”,用于在按住某个键时生成事件。

    秘诀是在按键被按下时启动Swing Timer,然后使用 Timer 生成事件来执行动画,然后在释放按键时停止 Timer。这样您就可以独立于操作系统来控制动画间隔。

    查看Motion Using the KeyboardKeyboardAnimation 示例代码显示了您可以执行此操作的一种方法。

    【讨论】:

    • 正是我想要的。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    • 2022-06-15
    相关资源
    最近更新 更多