游戏对象在cocos2d + box2d中设置

时间:2010-08-11 04:08:11

标签: iphone cocos2d-iphone box2d

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

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

OR

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

提前谢谢。

2 个答案:

答案 0 :(得分:1)

我首选的方法是将它们封装在Actor对象中。我的Actor对象还负责根据b2Body数据更新CCSprite位置/旋转。然后我将该Actor对象用作b2Body中的userData。在对联系人侦听器中的主体进行迭代时,将Actor作为userData非常有用。

答案 1 :(得分:1)

一个简单的解决方案是将body的userData成员设置为指向sprite,并将sprite的userData成员指向body。这样您就可以以简单方便的方式访问它们。然后你不需要将sprite和body对象封装在actor中。