Используя клавиатуру, чтобы переместить круг под углами в Java
Итак, у меня есть приложение, которое успешно перемещает шар (эллипс) влево, вправо, вверх или вниз в зависимости от того, какая кнопка клавиатуры нажимается. Однако я'Мне трудно заставить мяч двигаться под углом. Я'Я пытаюсь сделать это, сказав, что, если пользователь держит 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