我有一个简单的游戏,我正在尝试为学习目的做,但矩阵有点难,尤其是在 DirectX 中。
我目前有一个 tilesystem 可以在屏幕上渲染图块并在中心呈现一个字符位置(在启动时)
当玩家向左移动时,地面应该向右移动,因此他始终位于屏幕中央。我使用 Sprite 来转换 Tiles 和玩家,但由于地面在移动而玩家站在地面上仍然位于中心位置,因此遇到了麻烦。
这是一个自上而下的 2D 游戏,所以我只需要变换位置(也许还有旋转)
我的相机类有这个方法:
D3DXMatrixTransformation2D(&View, NULL, 0, &Scale, &Center, D3DXToRadian(Rotation), &Position);
我也试过(对于相机):
D3DXMatrixTranslation(&View, Position.x, Position.y, 0);
然后当我渲染地面精灵时,我将它设置为转换为相机,但是玩家有它自己的矩阵,我在他移动时使用它。
和上面那个一模一样,但他的位置、轮换等等……
我错过了什么,我需要什么?
我只有一个适合屏幕宽度/高度的图块系统,所以我应该看到他什么时候移动,但他仍然站在中心和地面上,玩家在移动。
我是否需要反转矩阵以使地面向相反方向移动?
只有玩家在这里移动,世界在他周围发生变化。
我必须说,作为游戏编程中排名第一的语言,很少有指南可以解释“2D 中的 TopDown 相机”这样简单的事情......