具有键保持的keyPressed事件

时间:2014-12-07 20:01:40

标签: java swing

我有这个游戏,射手(2人游戏通过数据报插座连接),它有一艘船。

我有一个油漆组件来画船。

移动 p2

向上向下

移动 p1

w s

当向上键 时:

public void keyPressed( KeyEvent e ){
    switch( e.getKeyCode() ){

        case KeyEvent.VK_UP: sendData("up start"); break;

我的(例如)主机执行sendData("up start"),将所述字符串发送到客户端,当客户端收到此消息时,它会执行{{1}这会将 p1 发送到另一个客户端 1像素上。

当我移动 p2 时(例如主机向上键一次),客户端上的p2发货移动了1个像素。

(是的,每次我按下主机上的向上按钮,客户端p2移动1个像素)

但是当我延长按键(按住向上键)时,即使主机上的彩绘船正在移动,它仍会移动1个像素只要我拿着钥匙。

如何在持有密钥时执行shoot.p1.moveUP();?我认为sendData("up start")只需执行一次,就像在keyPressed中一样,只要您键即可完成。

我希望在不使用任何外部库的情况下解决这个问题。谢谢:)

1 个答案:

答案 0 :(得分:1)

LWJGL有一个你可以使用的键盘类......

import org.lwjgl.input.Keyboard;

您可以使用方法Keyboard.isKeyDown(Keyboard.KEY_UP);获取按钮状态,然后调用发送数据,更新游戏状态等的方法。