そのため、キーパッドのどのボタンが押されているかに応じて、ボール (楕円) を左、右、上、または下に正常に移動するアプリケーションがあります。しかし、ボールを斜めに動かすのに苦労しています。ユーザーが2つの方向キーを保持すると、ボールが斜めに入ると言うことでこれをやろうとしています. たとえば、左キーと上キーをクリックすると、ボールが北西方向に移動するようにします。問題の原因がわかる方がいらっしゃいましたら、お力添えをいただければ幸いです。
エンジン
class KeyClickListener implements KeyListener
{
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == KeyEvent.VK_DOWN )
{
component.moveCircle(1);
}
else if (e.getKeyCode() == KeyEvent.VK_UP)
{
component.moveCircle(2);
}
else if (e.getKeyCode() == KeyEvent.VK_RIGHT)
{
component.moveCircle(3);
}
else if (e.getKeyCode() == KeyEvent.VK_LEFT)
{
component.moveCircle(5);
}
//this is my attempt at telling whether or not the user was holding two keys
else if (e.getKeyCode() == KeyEvent.VK_LEFT && e.getKeyCode() == KeyEvent.VK_UP)
{
component.moveCircle(5);
}
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
}
CircleComponent
public void moveCircle(int w)
{
dir = w;
if (dir == 1)
{
y+=20;
repaint();
if (y>=560)
{
dir=2;
}
}
.
.
.
else if (dir == 5)
{
x-=10;
y-=10;
repaint();
if(x<=0 )
{
dir=3;
}
}
}