SDL平铺和精灵渲染地形

时间:2015-02-10 21:24:17

标签: c++ opengl sdl collision tiles

你好,最近我开始乱用SDL。因为我对一些2D / 2.5D游戏感兴趣。所以我开始在C ++中使用SDL,我想要重新创建类似于原始塞尔达的东西。 所以,据我所知,那些游戏工作与某种等距预测,或标准的正交视图,但有一件我不明白的是你如何在地图上的那些对象之间生成类似3D的碰撞(瓷砖,精灵等在2D)。看看下面的视频链接。这是纯粹在SDL中创建的,是PerPixel碰撞还是矩形?或者它也可能涉及OpenGL? 链接:https://www.youtube.com/watch?v=wFvAByqAuk0

1 个答案:

答案 0 :(得分:0)

原件可能是一个简单的矩形碰撞。 我相信你的“3D碰撞”是某些物体中存在的部分碰撞。例如,Link可以通过树叶,但不能通过树干。

您可以通过两种方式轻松完成:

  1. 渲染和碰撞的层次。行李箱位于一层,并被一些碰撞箱覆盖。链接存在于中间层中。叶子在另一层,在Link之上。然后,您可以检查Link的图层与包含树干和其他对象的图层之间的冲突,例如。
  2. 此外,您可以为瓷砖创建一个属性,您可以在其中存储您希望获得的碰撞类型。例如,'box'碰撞将告诉您的引擎该对象在每一侧都是可碰撞的。或者“底部”碰撞会告诉你的引擎,只有当他走进对象时,链接才会与此对象发生碰撞(这是你在一些2D侧面滚轮上看到的效果:跳过一个瓷砖然后落入它中。
  3. 在这些简单的情况下,每像素碰撞是不值得的。我发现使用创造力,面具和图层来个性化碰撞更好。

    顺便说一句:这个主题更适合https://gamedev.stackexchange.com/