我有这个游戏,射手(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
中一样,只要您按键即可完成。
我希望在不使用任何外部库的情况下解决这个问题。谢谢:)
答案 0 :(得分:1)
LWJGL有一个你可以使用的键盘类......
import org.lwjgl.input.Keyboard;
您可以使用方法Keyboard.isKeyDown(Keyboard.KEY_UP);
获取按钮状态,然后调用发送数据,更新游戏状态等的方法。