Я начал изучать физику игры, и я пытаюсь перемещать мяч под углом. Но это не меняет своего угла. Система координат Java немного отличается, и я думаю, что моя проблема есть. Вот мой код.
Это для расчета скорости x и y:
scale_X= Math.sin(angle);
scale_Y=Math.cos(angle);
velosity_X=(speed*scale_X);
velosity_Y=(speed*scale_Y);
Это для перемещения мяча в функции run ():
ball.posX =ball.posX+(int)velosity_X;
ball.posY=ball.posY+(int)velosity_Y;
Я использовал (int)velosity_X
и (int)velosity_Y
, потому что в ball
классе я рисую объект
g.drawOval(posX, posX, width, height);
и здесь g.drawOval
требуется int
. Я не знаю, если это проблема или нет. Также, если я использую угол 30, он идет + X и + Y, но если я использую угол 35, он идет -X и -Y. Я не понял, как работает система координат в Java.