【发布时间】:2016-10-02 20:29:52
【问题描述】:
是否可以让 GameMaker Studio 中的物理对象使用精确碰撞?
这是我的问题的一些背景。我正在制作一个海盗游戏,玩家在有许多岛屿的大海中航行。我一直在使用物理引擎来控制船的运动,效果很好。然而,当试图在船和各个岛屿之间引入碰撞时,问题就出现了。据我所知,底层物理装置只能形成相当简单的形状。具体来说,碰撞形状编辑器被限制为 12 个点,并且只有凸形状。这是一个问题,因为我的许多岛都是相对复杂的非凸形状,不一定是单片。能够将岛精灵用作精确的碰撞蒙版会很好,这对于非基于物理的对象是可能的。
【问题讨论】:
-
您可以编写一个函数来查找岛屿的轮廓。找到一个透明像素旁边的像素,然后继续找到当前像素旁边的像素,至少有一个透明邻居(总是在理智的方向上搜索,例如从顺时针上方),直到你返回到第一个像素,然后你需要三角化并分组为凸形。这将有助于en.wikipedia.org/wiki/Polygon_triangulation。只需完成一次,您就可以在生产环境中手动完成。
-
所以您建议将每个对象拆分为多个凸对象?我想我可以做到,尽管将它们无缝地重新组合在一起可能会很麻烦。
标签: physics game-physics game-maker collision