我正在努力将Bullet引擎与其余的游戏代码集成在一起。
这包括使Player类能够从BulletCache类调用方法而不会使程序崩溃(错误读取'无法识别的选择器发送到实例...')。
到目前为止,我的集成尝试包括在Player类的界面中创建一个BulletCache对象,例如:
@interface Player : LevelObject
{
BulletCache *bulletCache;
}
但我相信需要一个构造函数来进一步链接这两个类。两个类都没有立即相关(Player类是几个类的子类,尽管最终是CCNode的子类),尽管它们都是CCNode的子类
有人可以给我任何关于如何进一步链接这两个类的进一步提示,所以Player类方法可以调用BulletCache的方法吗?
编辑:因为我得到了一个无限循环,并且控制台在BulletCache类中报告了一个与CCSprite相关的错误,所以我在BulletCache方法旁边放了一个断点:
CCSpriteFrame* bulletFrame = [[CCSpriteFrameCache sharedSpriteFrameCache]
spriteFrameByName:@"bullet1big e0000.png"];
并运行“Build& Debug”。单击mainMenu上的“New Game”按钮后,控制台显示加载日志,然后立即停止,控制台底部显示消息: “GDB:在断点1停止(命中数:1)' - 第84行'第84行是我放置断点的地方,所以看起来程序遇到了这个代码的问题。但它看起来不正确,并且方法应该匹配 - 我没有得到任何'警告:-spriteFrameByName可能无法响应CCSpriteFrame'
答案 0 :(得分:1)
确保导入BulletCache类。 您还需要在Player的init方法中初始化bulletCache。
然后可以通过
调用BulletCache类的任何实例方法[bullectCache somemethod]
某些方法需要由BulletCache类中的方法替换