0

我使用 Level Helper 和 SpriteHelper 来创建我的精灵、图像、关卡,更重要的是动画和物理。

请注意,我所说的物理是指您可以在用于碰撞检测的模拟器上看到的调试绘图。

我创建了一个游泳者并为此添加了物理学。完成代码,这样物理就可以在游泳者移动时跟随游泳池周围的游泳者。我现在已经开始为游泳者设置动画,让腿踢等等。现在,当我加载我的游戏时,只有动画的第一个精灵是物理的轮廓。所以我可以看到游泳者的腿在踢,但物理的 debugdraw 网格也没有动画。现在这不是一个真正的问题,直到例如我的游泳者失去双腿(我知道奇怪的游戏)。我将动画更改为现在没有腿的游泳者,但物理网格仍然显示腿。因此,任何与东西的碰撞仍然会发生在腿所在的地方,但它们不应该发生。这有意义吗?

有没有办法更新新动画的物理特性,还是我需要移除我的整个游泳者并画一个新的?

任何帮助都会很棒。谢谢

4

1 回答 1

0

这是有道理的,因为您的精灵在两种状态下都使用相同的 box2d 网格。如果您希望在更改 Sprite 后具有不同的碰撞行为,则应指定另一个(较小的)网格体。

请注意,即使在 cocos2d 端,您的精灵仍然具有与新动画相同的容器框。

为了继续使用 SpriteHelper 功能,您可能需要创建 2 个不同的 sprite-body 集:一个带有完整的身体,然后在“意外”之后将其替换为无腿的 sprite。

现在,就游戏玩法而言,我的观点是无论如何都不应该有任何腿部碰撞。由于它们在移动,玩家不会觉得它们不碰撞很奇怪。您可以使用没有腿的网格体并将其用于两个精灵。除非您想将不同的碰撞作为游戏功能(例如让玩家选择割断腿以适应较小的洞穴等)

于 2013-01-11T08:17:07.190 回答