我遇到了设计问题,这可能是因为我还没有完全理解cocos2d和box2d。
我想创建具有CCSprite(图像数据)和b2Body(物理)的游戏对象,我是否正确制作包含两者的封装对象?如果我这样做,这将使我能够更改CCSprite
OR
正如我在示例代码中看到的那样,b2Body有一个将精灵设置为的userData变量。然后使用这个方法,我只需要一个指向物理对象的单个指针来处理CCSprite。
提前谢谢。答案 0 :(得分:1)
我首选的方法是将它们封装在Actor对象中。我的Actor对象还负责根据b2Body数据更新CCSprite位置/旋转。然后我将该Actor对象用作b2Body中的userData。在对联系人侦听器中的主体进行迭代时,将Actor作为userData非常有用。
答案 1 :(得分:1)
一个简单的解决方案是将body的userData成员设置为指向sprite,并将sprite的userData成员指向body。这样您就可以以简单方便的方式访问它们。然后你不需要将sprite和body对象封装在actor中。