我知道做一个水平和垂直滚动游戏(如马里奥),在这种游戏类型中,角色总是与用户保持相同的距离。角色仅在水平滚动条中向左和向右移动,在垂直滚动条中向下和向上移动。
但2D游戏中的角色可以在场景中自由移动,例如图形冒险。
那么我怎么能这样做才能让角色在深度感上自由地移动?
此视频中可以看到一个示例:http://youtu.be/DbZZVbF8fZY?t=4m17s
谢谢你。
答案 0 :(得分:2)
我就是这样做的:
首先想象一下,你是从顶部到地面看你的场景。像这样设置你的坐标系。因此,场景中的所有对象都将具有X和Y坐标。所有的物体移动和检查(当角色碰到墙壁或其他东西时),计算都在2D世界中进行。
现在,为了画出你的世界,如果你想要更简单的东西,没有一些等距透视3D看起来你只是先绘制你的背景图像,然后将所有物体远远地命令并以这种方式绘制它们。使用你的Y坐标来挤压运动区域。向Y添加一些常量以将该区域向下移动。如果角色可以跳跃或飞行(通过Y轴移动)只需将Y坐标移动一段时间。
但是如果你想让它更加3D,你必须进行某种透视变换 - 将你的X坐标与Y和一些常数相乘(从值1开始为常数并将其调整到最佳值) 。你也可以用Y coord做类似的事情,但不要认为这样的冒险游戏需要它。
如果没有图像,这可能很难理解,但它实际上是非常简单的转换。