Java:角度移动球?

Erc*_*can 3 java

我已经开始学习游戏物理,我正试图以一个角度移动一个球.但它并没有改变它的角度.Java坐标系有点不同,我认为我的问题就在那里.这是我的代码.

这是用于计算x和y速度:

 scale_X= Math.sin(angle);
 scale_Y=Math.cos(angle);
     velosity_X=(speed*scale_X);
 velosity_Y=(speed*scale_Y);
Run Code Online (Sandbox Code Playgroud)

这是用于在run()函数中移动球:

  ball.posX =ball.posX+(int)velosity_X;
  ball.posY=ball.posY+(int)velosity_Y;
Run Code Online (Sandbox Code Playgroud)

我用过(int)velosity_X,(int)velosity_Y因为在ball课堂上画画对象

g.drawOval(posX, posX, width, height);
Run Code Online (Sandbox Code Playgroud)

这里g.drawOval要求int.我不知道这是不是一个问题.此外,如果我使用角度30它会变为+ X和+ Y但是如果我使用角度35它会变为-X和-Y.我没弄清楚如何在Java中使用坐标系.

Eya*_*der 7

Math.sin()和Math.cos()期望以弧度表示角度.您应该将角度转换为弧度(角度*Math.PI/180).