如何使用Cocos2d,TMXTiledMaps和Chipmunk实现移动平台

时间:2009-11-13 14:06:46

标签: cocos2d-iphone chipmunk

我正在使用Cocos2d游戏进行缓慢而稳定的进步,但我仍然无法创建移动平台。

主角需要物理和碰撞检测,因此是花栗鼠形状/身体。我写了一个类来迭代TMXTiledMap,以减少花栗鼠空间中的物体数量。所以使用这样的地图

----------
--------x-
-xxx----x-
----------

而不是有5个单独的身体(rects),有两个身体,一个是三个瓷砖宽,另一个是两个瓷砖高。

我设法让代码工作以确定哪些磁贴是移动平台的一部分,并根据需要移动磁贴。

然而,身体需要与瓷砖一起移动才能使其正常工作。这就是我被困住的地方。身体是静止的......所以......

platformShape-> body-> p = cpv(x,y);

什么都不做(我猜这是预期的行为)。

但是,如果我将它们的质量设置为除静态以外的任何物质,所有物理都会发挥作用,并且物体的行为不会像预期的那样,或者它们的行为完全取决于你如何看待它。当它们撞到另一个身体时(例如:主角),它们会不规则地移动并旋转。我所追求的是典型的移动平台,你可以在一个典型的平台游戏中找到它,它可以在任何给定的方向上平滑移动。

我的问题是;有没有人之前实现过这样的东西,你的技术是什么?或者,如果你要实现这样的东西,你会怎么做?

相关代码为here。我把它放在一个pastebin中,因为我认为它更像是一个概念上的误解而不是其他任何东西。

1 个答案:

答案 0 :(得分:3)

事实证明你需要打电话

cpRehashStaticShapes

显然很明显,但在我看来容易错过。