行星轨道顺时针逆时针方向

时间:2017-05-07 00:00:59

标签: c# visual-studio

我做了一个游戏,其中行星顺时针轨道(更多的模拟)。我想知道如何逆时针方向前进。

主机=行星正在轨道运行的物体

entity = planet

double angle;
            if (host.Y == entity.Y && host.X == entity.X) //small offset
                angle = Math.Atan2(host.Y - entity.Y + (Random.NextDouble()*2 - 1),
                    host.X - entity.X + (Random.NextDouble()*2 - 1));
            else
                angle = Math.Atan2(host.Y - entity.Y, host.X - entity.X);
            float angularSpd = host.GetSpeed(s.Speed)/s.Radius;
            angle += angularSpd*(time.thisTickTimes/1000f);

            double x = entity.X + Math.Cos(angle)*radius;
            double y = entity.Y + Math.Sin(angle)*radius;
            Vector2 vect = new Vector2((float) x, (float) y) - new Vector2(host.X, host.Y);
            vect.Normalize();
            vect *= host.GetSpeed(s.Speed)*(time.thisTickTimes/1000f);

            host.MoveTo(host.X + vect.X, host.Y + vect.Y);

1 个答案:

答案 0 :(得分:0)

尝试将angle += angularSpd...更改为angle -= angularSpd...