链接Cocos2d中的类方法

时间:2012-01-17 07:44:30

标签: iphone objective-c ios cocos2d-iphone

我正在努力将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'

1 个答案:

答案 0 :(得分:1)

确保导入BulletCache类。 您还需要在Player的init方法中初始化bulletCache。

然后可以通过

调用BulletCache类的任何实例方法
[bullectCache somemethod]

某些方法需要由BulletCache类中的方法替换