【问题标题】:Collision detection with images on the iPhone using OpenGL使用 OpenGL 对 iPhone 上的图像进行碰撞检测
【发布时间】:2019-10-24 05:51:43
【问题描述】:

我正在使用与 OpenGL ES 上的 cocos2d 非常相似的引擎(但不完全是)为 iPhone 开发 2D 游戏(有点像自上而下的太空射击游戏)。我正在尝试弄清楚我将如何进行碰撞检测。

我游戏中的所有船只都是图像,游戏会将图像作为纹理加载到屏幕上。我已经非常非常进行了简单的检测,基本上只是获取图像的矩形并检查它们是否发生碰撞并且可以很好地做到这一点。

但是,当然,船并没有完全占据整个矩形,所以那里有空白。所以我的问题是我应该如何解释那个空白?我必须存储船舶的矩阵吗?还是有其他方法?我还听说过可能使用 Chipmunk 物理引擎进行碰撞检测?那将如何运作?

【问题讨论】:

    标签: iphone opengl-es 2d collision-detection


    【解决方案1】:

    (1) 关于 Chipmunk,简短的回答是是的,你应该立即下载 Chipmunk,向这个家伙捐赠一些东西,然后开始学习它

    使用它一天左右基本上可以回答您的所有问题。如果您想使用物理游戏,您将需要参与其中。

    (2) 你问的是使用近似值(“只是”一个矩形)而不是更精确地形状像你的宇宙飞船的东西。 事实上,您可能会惊讶地发现,这正是您从小就玩过的所有著名大牌游戏中通常的做法孩子们!实际上,有时您可能只使用 A DOT (!) 来检测碰撞。

    您在生产中可能会尝试一个更复杂的模型,然后玩几个小时然后看看,它实际上是否比简单的点或矩形模型更好玩。

    如果您确实想制作更复杂的模型 - 只需制作一个!使用您当前的系统从三个或四个矩形构建它。尝试它们“相互对抗”,并“首先检查一个大的”以查看它是否甚至彼此靠近(有点像简单的空间散列)。

    您会发现,当您使用 Chipmunk 时,您现在知道必须在阅读此消息后立即开始,您只是以同样乏味的方式构建它。这不是灵丹妙药。但是,如果您要使用“更复杂的模型”,是的,最好使用标准的花栗鼠来完成工作 - 它会更快更好地完成。有很多东西要学,你应该跳下去!

    (3) Unity 不仅仅适用于 3D 最后,如果你想以聪明的方式来做这件事,你必须使用 Unity3D,它将让您访问非常金属,即芯片组上的 Nvidia 物理。请注意,unity 也适用于 2D 游戏 - 您只需在 unity 中单击一个按钮即可使用 2D 投影(许多品牌的 2D 游戏都是这样做的)。

    如果你使用这种方法,你可以(如果你愿意的话)拥有“绝对精确”的物理,模型的每个角落和缝隙都被建模。

    这样做有什么缺点?啊哈...问题是,您需要游戏中所有内容的出色实际 3D 模型! (就像你看到他们在你最喜欢的皮克斯蓝光附带的“我们如何制作电影”的特殊功能中看到的那样。)要做到这一点,你需要像 autodesk、maya 之类的东西。您很可能会从数字道具店购买一些现成的模型(无需构建“椅子”,因为它已经完成了 1000 次,您可以花 10 美元购买一把)。

    (Unity3D 完全免费使用几个月,你看看它是否能赚钱。)

    顺便说一句,在花栗鼠前面 --- 你可以只使用 Corona,它非常易于使用,并且完全内置了类似花栗鼠的物理特性,而你无需付出任何努力!您可以在比写这封电子邮件更短的时间内完成整个游戏。您可能已经在销售您的游戏并考虑下一款游戏。或者,你可以使用“Cocos”,它确实内置了一个类似花栗鼠的物理库。我个人(只是我)不喜欢也不会接触 cocos - 但当然很多游戏都使用它。

    (对我来说,使用 cocos 这个“白痴”产品似乎毫无意义,而您可以继续使用 Corona,这是一个“白痴”产品但非常容易使用,1000x更扎实,完成产品并开始赚钱的速度可能快 10 倍。)

    诺埃尔总结:

    所以在某种意义上使用 Unity3D(因此,你的计算机芯片上的实际 nvidia 物理)是如果你想要详细的角落和裂缝碰撞的最终解决方案. 再往下走,Chipmunk 正是你应该在 ifone/ipad 上用于 2D 物理的东西——它正是所有著名游戏中使用的东西我们非常了解。你需要学习一些才能做到这一点 - 它非常有趣。 如果你愿意,最后直接让你当前的模型变得更复杂 - 通过添加更多矩形来滚动你自己的模型!

    第四点是,一定要记住,在游戏中,令人惊讶的是,你经常可以使用非常简单的物理原理(通常比一个矩形更简单!! - 只是一个该死的点 - 即,简单地测量中心之间的距离!)在竭尽全力测试更详细的物理之后,你会在第五次进行测试,并找出最简单的物理原理是什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-29
      • 2015-04-08
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多