好的,所以这是我的问题。在XNA中向上弯曲的弧形移动2D精灵?
我一直试图在XNA中创建一种视觉日/夜周期,其中我有一个基础类更新并保存时间,并且Sky类根据类更新的时间输出背景。
但我不能弄清楚的是,如何让月球/太阳在弯曲的向上弧线上移动,该弧线基于一天中的什么时间跨越屏幕。最有问题的部分是让Y轴变为曲线,而X轴随着时间的推移而移动。
任何人都可以帮助我吗?
编辑: 好吧,看起来像安德鲁鲁塞尔的例子,帮助我做我需要做的。 虽然我不得不精力一点,但我终于找到了合适的解决方案: float Time =(float)Main.inGameTime.Seconds /(InGameTime.MaxGameHours * 60 * 60/2);
this.Position.X = Time * (Main.Viewport.X + Texture.Width * 2) - Texture.Width;
this.Position.Y = Main.Viewport.Y - (Main.Viewport.Y * (float)Math.Sin(Time * MathHelper.Pi)/2) - (Main.Viewport.Y/2) + 50;
非常感谢你,不得不为我的视口和所有这些修改它,但现在它就像一个魅力。查看我的问题解答。 – SpikensbroR 2011-05-30 16:26:53
如果您想包含夜间循环,则可以使用Math.Sin和Math.Cos来创建完整的圆周运动 – tweetypi 2011-06-01 01:00:21