游戏引擎:坐标系和精灵旋转

时间:2012-03-21 07:24:41

标签: rotation sprite game-engine coordinate-systems

我正在开发一款玩具游戏引擎。我从来没有考虑过坐标系,只是按原样接受它们,但现在我有点困惑。

所以,这就是常见的游戏坐标系统的样子(大多数Canvas实现使用左上角为(0,0),Y轴向下):

Normal coordinates

对于精灵来说,接受左上角作为精灵位置是很自然的。

现在让我们看看旋转是如何发生的。如果在共同坐标系Y轴上升,如果角度为正,则旋转为CCW。并且,零角度指向右侧。 如果Y轴下降,则旋转为CW:

angles

由此可以假设所有精灵默认情况下都会旋转90度?我对么?或者我应该将它们翻转并旋转-90度?或者我应该假设它们的角度为0而不是向右(这似乎对我来说不正确)。

sprites rotated

建议在游戏引擎中使用什么坐标系?实际上,首选是什么 - 以度或弧度为单位?

谢谢,谢尔盖。

1 个答案:

答案 0 :(得分:1)

你不应该假设所有的精灵都旋转了。翻转。您应该在游戏引擎中使用编程代码以满足您的需求。

对于坐标系的选择,当我在自上而下的透视游戏中工作时,我将在精灵中心选择锚点;当我正在进行水平卷轴游戏(如Mario)时,我将在精灵的左上角选择锚点。当然,对于3D世界来说,这是不同的故事。这取决于你的精灵如何移动。锚点应放置在不经常移动的位置。