gpt4 book ai didi

java - 如何处理 Java Applet 中的多个按键?

转载 作者:行者123 更新时间:2023-11-29 06:47:59 26 4
gpt4 key购买 nike

我正在通过在线教程自学如何用 Java 编写游戏。我正在使用 Java Applets 创建 Pong 游戏。每个 Racket 由不同的键控制,进行 1v1 比赛。如果两个用户在不同的时间按下键,这就可以正常工作。但是当一个键被按住然后另一个键被按住时(例如:按住箭头键,然后用户 2 按住“S”键),第二个键覆盖第一个并且第一个桨将停止移动。我猜我需要使用线程,但我对它们知之甚少,而且我无法理解如何使用/实现它们。当按下两个(或更多)键时,我将如何处理这种情况?

奖励:就像我说的那样,我对线程知之甚少 - 我假设我还需要一个线程来让球/冰球在其他所有事情进行时四处移动。是正确的吗?如果是这样,我该如何在不需要输入的东西上放置线程?

谢谢你的帮助,打碟机

最佳答案

你通常做的是记住每个按键的状态。

您可以保留一系列操作(如果需要,也可以保留所有键的数组)。 keyDown 事件导致例如

boolean actions[12];...
...

public boolean keyDown( Event e, int key ) {
if (key == 'a') {
actions[ACTION_LEFT] = true;
}
..
}

并且您需要捕获 keyup 事件并在释放键时将操作设置为 false。

在移动逻辑中,您可以只检查按键的状态

if(actions[ACTION_LEFT] == true)
moveLeft();
if(actions[ACTION_RIGTH] == true)
moveRight();

关于java - 如何处理 Java Applet 中的多个按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1133369/

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