我正在制作一个两人游戏小程序。两名球员都需要控制他们的飞盘以防止球与墙壁发生碰撞。一名玩家通过鼠标移动控制他的光盘,并通过键盘上下控制其他控件。问题是第二个玩家无法控制他的光盘,因为由于 MouseMotionListener,键盘键无法保持焦点。我不知道如何解决这个问题。这是代码:
public void init()
{
handle = new HandlerClass();
addMouseMotionListener(handle);
addKeyListener(handle);
}
private class HandlerClass implements MouseMotionListener,KeyListener
{
public void mouseMoved(MouseEvent event)
{
MouseY=event.getY();
if(MouseY<=0)
MouseY=0;
else
if(MouseY>=getHeight()-radius*2-1)
MouseY=getHeight()-radius*2-1;
}
public void keyPressed(KeyEvent event)
{
switch(event.getKeyCode())
{
case KeyEvent.VK_UP:
if(keyboardY<=0)
{
keyboardY=0;
}
keyboardY=keyboardY+1;
break;
case KeyEvent.VK_DOWN:
System.out.println("down key pressed");
if(keyboardY>=getHeight()-radius*2-1)
{
keyboardY=getHeight()-radius*2-1;
}
keyboardY-=1;
break;
}
}
编辑:
我通过添加解决了键盘失去焦点的问题,setFocusable(true);
但现在游戏像地狱一样闪烁。我不知道游戏中发生了什么。问候