有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

eclipse java。awt。机器人连续按键

这是我的问题。我有一个java程序,可以根据用户与安卓手机的交互方式向游戏(内置Unity)发送击键信息。(我的java程序是通过wi-fi进行安卓交互的侦听器)现在,为了做到这一点,我使用java.awt.Robot向游戏窗口发送按键。我的listener程序中编写了以下代码块:

if(interacting)
{
    Robot robot = new Robot();
    robot.keyPress(VK_A);
    robot.delay(20); //to simulate the normal keyboard rate
}

现在,只要用户按下手机的触摸屏,变量interacting就会为真,我想要实现的是(通过监听器)向游戏发送连续的按键信息链。然而,出于某些原因,这严重影响了性能。我注意到游戏变得很慢(帧速率迅速下降),甚至电脑也变得很慢。怎么了?我应该在每个keyPress之后使用robot.keyRelease(VK_A)吗?但我的游戏有一个不同的动作映射到一个键的释放,我不希望快速按键和释放;我真正想要的是模拟连续的按键,就像用户手动按下键盘上的A键一样。请帮忙


共 (1) 个答案

  1. # 1 楼答案

    是的,如果你用Robot键按下一个键,你也需要释放它

    也许是这样的

    Robot robot = new Robot();
    
    if(interacting)
    {
        robot.keyPress(VK_A);
        robot.delay(20); //to simulate the normal keyboard rate
        robot.keyRelease(VK_A);
        robot.delay(20); //to simulate the normal keyboard rate
    }