根据旋转角度计算XY运动?

Rob*_*Rob 19 c# angle rotation game-physics

假设我在2D空间中有一个可以旋转的物体,然后应该根据其旋转角度移动.

例如:

  • 如果角度为0(向上指向),那么on_timer它应该将Y移动1,将X移动X.

  • 如果角度为45,那么它应该由Y移动1和X移动1.

  • 如果指向90度,则0表示Y,1表示X.

  • 如果指向135度,则由Y表示-1,由X表示+1,等等.

你知道计算这个的任何函数吗?

gjv*_*amp 29

好吧,它似乎以不同的速度移动不同的角度.

对于0度(直线向上),它移动了1,但是45岁,它移动了sqrt(1 ^ 2 + 1 ^ 2)= 1.41.

我想你想看看Sin和Cos.

X += Speed * Math.Cos(angle);
Y += speed * Math.Sin(angle);
Run Code Online (Sandbox Code Playgroud)

关心Gert-Jan

  • 谢谢,让它工作!:) double radians =(Math.PI/180)*(this.orient - 90); this.CorX = Convert.ToInt16(this.CorX + 15*Math.Cos(弧度)); this.CorY = Convert.ToInt16(this.CorY + 15*Math.Sin(弧度)); (7认同)