【问题标题】:Game engine: coordinate system and sprite rotation游戏引擎:坐标系和精灵旋转
【发布时间】:2012-03-21 07:24:40
【问题描述】:

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

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

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

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

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

推荐在游戏引擎中使用什么坐标系?而且,实际上,什么是首选 - 以度数或弧度测量?

谢谢,谢尔盖。

【问题讨论】:

    标签: rotation sprite game-engine coordinate-systems


    【解决方案1】:

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

    对于坐标系的选择,我在做俯视图游戏时会选择精灵中心的锚点;当我在做水平滚动游戏(比如马里奥)时,我会在精灵的左上角选择锚点。当然,对于 3D 世界,情况就不同了。这取决于你的精灵如何移动。锚点应放置在不经常移动的位置。

    【讨论】:

    • 谢谢,我了解了锚点,我同意你的看法。这取决于游戏类型,游戏引擎应该提供设置锚点的机制。但是我不明白你所说的“在引擎中编程代码”是什么意思,对不起。
    • 通过应用变换矩阵在编程代码中进行旋转和翻转。
    猜你喜欢
    • 2016-11-02
    • 2011-12-12
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 2023-03-06
    • 2016-11-29
    相关资源
    最近更新 更多