我正在使用Cocos2d游戏进行缓慢而稳定的进步,但我仍然无法创建移动平台。
主角需要物理和碰撞检测,因此是花栗鼠形状/身体。我写了一个类来迭代TMXTiledMap,以减少花栗鼠空间中的物体数量。所以使用这样的地图
----------
--------x-
-xxx----x-
----------
而不是有5个单独的身体(rects),有两个身体,一个是三个瓷砖宽,另一个是两个瓷砖高。
我设法让代码工作以确定哪些磁贴是移动平台的一部分,并根据需要移动磁贴。
然而,身体需要与瓷砖一起移动才能使其正常工作。这就是我被困住的地方。身体是静止的......所以......
platformShape-> body-> p = cpv(x,y);
什么都不做(我猜这是预期的行为)。
但是,如果我将它们的质量设置为除静态以外的任何物质,所有物理都会发挥作用,并且物体的行为不会像预期的那样,或者它们的行为完全取决于你如何看待它。当它们撞到另一个身体时(例如:主角),它们会不规则地移动并旋转。我所追求的是典型的移动平台,你可以在一个典型的平台游戏中找到它,它可以在任何给定的方向上平滑移动。
我的问题是;有没有人之前实现过这样的东西,你的技术是什么?或者,如果你要实现这样的东西,你会怎么做?
相关代码为here。我把它放在一个pastebin中,因为我认为它更像是一个概念上的误解而不是其他任何东西。
答案 0 :(得分:3)
事实证明你需要打电话
cpRehashStaticShapes
显然很明显,但在我看来容易错过。