我在 Cocos2d 游戏中取得了缓慢但稳定的进展,但我一直在创建移动平台。
主角需要物理和碰撞检测,因此是花栗鼠的形状/身体。我编写了一个类来迭代 TMXTiledMap 以减少花栗鼠空间中的身体数量。所以有了这样的地图
----------
--------x-
-xxx----x-
----------
不是有 5 个单独的实体(rects),而是有两个实体,一个是三格宽,另一个是两格高。
我已经设法使代码能够识别哪些图块是移动平台的一部分,并根据需要移动图块。
但是,身体需要与瓷砖一起移动才能正常工作。这就是我卡住的地方。物体是静态的,所以...
platformShape->body->p = cpv(x,y);
不做任何事情(我猜这是预期的行为)。
但是,如果我将它们的质量设置为静态以外的任何值,所有的物理特性都会发挥作用,并且物体的行为不会像预期的那样,或者它们的行为是否完美取决于你如何看待它。当它们撞到另一个身体(例如:主角)时,它们会不规律地移动并旋转。我所追求的是典型的移动平台类型,你会期望在一个典型的平台游戏中找到,它可以在任何给定的方向上平稳移动。
我的问题是;以前有没有人实现过这样的东西,你的技术是什么?或者,如果你要实现这样的东西,你会怎么做?
相关代码在这里。我把它放在一个 pastebin 里,因为我认为这更像是一个概念上的误解,而不是其他任何东西。