SDL Tile 和 Sprite 渲染地形
SDL Tile and Sprite Rendering Terrain
你好,最近我开始弄乱SDL。因为我对某些 2D/2.5D games.So 感兴趣,所以我开始在 C++ 中使用 SDL,我希望重新创建类似于原始塞尔达的东西。
据我所知,这些游戏使用某种等距透视或标准正交视图工作,但我不明白的一件事是你如何在地图上的那些对象(瓷砖、精灵等)之间生成类似 3D 的碰撞2D)。看看下面的视频 link。这是纯粹在 SDL 中创建的,是 PerPixel 碰撞还是矩形?或者它也可能涉及 OpenGL?
Link: https://www.youtube.com/watch?v=wFvAByqAuk0
原版大概是一个简单的矩形碰撞。
我相信您的“3D 碰撞”是某些物体中存在的部分碰撞。例如,Link可以穿过树叶,但不能穿过树干。
您可以通过两种方式轻松完成:
- 渲染和碰撞层。行李箱位于一层,并被一些防撞箱覆盖。 Link 存在于中间层中。树叶在另一层,在 Link 之上。然后你可以检查 Link 的层与树干和其他对象的层之间的碰撞,例如。
- 此外,您可以为您的图块创建一个 属性,您可以在其中存储您希望获得的碰撞类型。例如,'box' collision 会告诉您的引擎该对象在每一侧都是可碰撞的。或者 'bottom' collision 会告诉你的引擎 Link 只有当他走进这个物体时才会与这个物体发生碰撞(这是你会在一些 2D sidescrollers 上看到的效果:跳过一个瓷砖但是然后稳稳的落进去。
在那些简单的情况下,每像素碰撞是不值得的。我发现自己使用创意、蒙版和图层来个性化碰撞要好得多。
顺便说一句:这个话题更适合 https://gamedev.stackexchange.com/
你好,最近我开始弄乱SDL。因为我对某些 2D/2.5D games.So 感兴趣,所以我开始在 C++ 中使用 SDL,我希望重新创建类似于原始塞尔达的东西。 据我所知,这些游戏使用某种等距透视或标准正交视图工作,但我不明白的一件事是你如何在地图上的那些对象(瓷砖、精灵等)之间生成类似 3D 的碰撞2D)。看看下面的视频 link。这是纯粹在 SDL 中创建的,是 PerPixel 碰撞还是矩形?或者它也可能涉及 OpenGL? Link: https://www.youtube.com/watch?v=wFvAByqAuk0
原版大概是一个简单的矩形碰撞。 我相信您的“3D 碰撞”是某些物体中存在的部分碰撞。例如,Link可以穿过树叶,但不能穿过树干。
您可以通过两种方式轻松完成:
- 渲染和碰撞层。行李箱位于一层,并被一些防撞箱覆盖。 Link 存在于中间层中。树叶在另一层,在 Link 之上。然后你可以检查 Link 的层与树干和其他对象的层之间的碰撞,例如。
- 此外,您可以为您的图块创建一个 属性,您可以在其中存储您希望获得的碰撞类型。例如,'box' collision 会告诉您的引擎该对象在每一侧都是可碰撞的。或者 'bottom' collision 会告诉你的引擎 Link 只有当他走进这个物体时才会与这个物体发生碰撞(这是你会在一些 2D sidescrollers 上看到的效果:跳过一个瓷砖但是然后稳稳的落进去。
在那些简单的情况下,每像素碰撞是不值得的。我发现自己使用创意、蒙版和图层来个性化碰撞要好得多。
顺便说一句:这个话题更适合 https://gamedev.stackexchange.com/