0

我遇到了设计问题,这可能是因为我还没有完全理解 cocos2d 和 box2d。

我想创建具有 CCSprite(图像数据)和 b2Body(物理)的游戏对象,制作包含两者的封装对象是否正确?如果我这样做,这将使我能够对 CCSprite 进行更改

或者

正如我在示例代码中看到的那样,b2Body 有一个 userData 变量,精灵被设置为。然后使用这种方法,我只需要一个指向负责 CCSprite 的物理对象的指针。

提前谢谢。

4

2 回答 2

1

我首选的做法是将两者都封装在一个 Actor 对象中。我的 Actor 对象还负责根据 b2Body 数据更新 CCSprite 位置/旋转。然后我将该 Actor 对象用作 b2Body 中的 userData。在迭代接触侦听器中的主体时,将 Actor 作为 userData 很有帮助。

于 2010-08-11T21:11:42.233 回答
1

一个简单的解决方案是设置body的userData成员指向精灵,设置精灵的userData成员指向body。通过这种方式,您可以轻松便捷地访问它们。那么你也不应该需要将精灵和身体对象封装在一个演员中。

于 2010-08-12T18:13:29.630 回答