2 人用のゲーム アプレットを作成しています。両方のプレーヤーは、ボールが壁に衝突しないようにディスクをコントロールする必要があります。1 人のプレーヤーは、マウスの動きでディスクを操作し、その他の操作はキーボードの上下で操作します。問題は、MouseMotionListener が原因でキーボードのキーがフォーカスされないため、2 番目のプレーヤーが自分のディスクを制御できないことです。この問題を解決する方法がわかりません。コードは次のとおりです。
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);
が、今ではゲームがちらつきます。ゲームで何が起こっているのかわかりません。よろしく