【发布时间】:2012-05-12 10:03:41
【问题描述】:
我目前正在 iPhone 上使用 cocos2d 和 box2d 开发游戏。
我阅读了很多关于游戏代码组织、游戏对象结构等的文章。
我首先通过继承自 CCSprite 的基类本身来开发我的游戏对象。
我有一个 CCSpriteBatchNode 来在一次绘制调用中绘制所有玩家可以与之交互的游戏项目。这很简单,因为我的 Item 类间接继承自 CCSprite,因此我可以轻松地将我的项目添加到 CCSpriteBatchNode。最重要的是,我可以依靠 cocos2d 来保留我的对象。
阅读文章后,我明白需要用更面向组合的风格而不是继承风格来重构我的代码。 所以我选择了一个继承自 NSObject 并具有一个或多个 CCSprite、一个 b2Body 等属性的 GameObject 基类。
我现在面临的问题是我不能再直接将我的游戏对象添加到 CCSpriteBatchNode 中。我首先认为我可以通过将 GameObject 的 sprite 属性添加到 CCSpriteBatchNode 来轻松解决问题。没关系,但谁保留拥有 CCSprite 的对象?如何从 CCSprite 轻松访问原始对象(userData/Object 是否正常)?
我应该创建一个数组来保留我的物品吗? 我想知道您将如何使用具有这种游戏对象结构的 CCSpriteBatchNode ?
已经有一个thread 关于未答复的问题,我真的很想听听这个主题。不是一个直截了当的答案,但有一些要更进一步的元素。
谢谢。
【问题讨论】:
标签: cocos2d-iphone code-organization