【发布时间】:2010-07-31 03:20:38
【问题描述】:
我正在创建一个自定义CCSprite 类来显示自定义图像并设置其自己的位置以及处理其他绘图任务。目前,除了初始化程序之外,我没有在自定义类中运行其他代码,它应该设置图像文件和精灵的位置。这是我的- (id)init 方法
- (id)init
{
if (!(self = [super initWithFile:@"runnerImage.png"]))
return nil;
//set our texture to the runner image ^^^
//set our initial position
CGSize size = [[CCDirector sharedDirector] winSize];
self.position = CGPointMake(size.width/2, size.height-RUNNER_OFFSET); //centered x and offseted by RUNNER_OFFSET
return self;
}
目前,应用程序在运行此代码后崩溃。 (我已经通过断点和注释行来确定这一点。)知道为什么吗?这是我调用它的部分:
myRunner = [[Runner alloc] init];
[self addChild:myRunner];
//schedule an update each frame
这是在 CCLayer 子类的 - init 方法中。
这是控制台日志:
2010-07-31 09:16:32.730
CubeRacer[849:207] cocos2d: cocos2d
v0.99.4-rc2 2010-07-31 09:16:32.733
CubeRacer[849:207] cocos2d:使用
导演类型:CCDisplayLinkDirector
2010-07-31 09:16:33.064
CubeRacer[849:207] cocos2d: GL_VENDOR:
苹果电脑公司 2010-07-31
09:16:33.065 CubeRacer[849:207]
cocos2d: GL_RENDERER: 苹果软件
渲染器 2010-07-31 09:16:33.065
CubeRacer[849:207] cocos2d:
GL_VERSION:OpenGL ES-CM 1.1 APPLE
2010-07-31 09:16:33.066
CubeRacer[849:207] cocos2d:
GL_MAX_TEXTURE_SIZE: 2048 2010-07-31
09:16:33.067 CubeRacer[849:207]
cocos2d:GL_MAX_MODELVIEW_STACK_DEPTH:
16 2010-07-31 09:16:33.068
CubeRacer[849:207] cocos2d: GL
支持 PVRTC:是 2010-07-31
09:16:33.068 CubeRacer[849:207]
cocos2d:GL 支持 BGRA8888
纹理:否 2010-07-31 09:16:33.071
CubeRacer[849:207] cocos2d: GL
支持 NPOT 纹理:是 2010-07-31
09:16:33.072 CubeRacer[849:207]
cocos2d:GL 支持
丢弃帧缓冲区:是 2010-07-31
09:16:33.072 CubeRacer[849:207]
cocos2d:使用 NPOT 支持编译:
否 2010-07-31 09:16:33.073
CubeRacer[849:207] cocos2d:已编译
在 TextureAtlas 中支持 VBO:是
2010-07-31 09:16:33.074
CubeRacer[849:207] cocos2d:已编译
使用仿射矩阵变换
CCNode:是 2010-07-31 09:16:33.074
CubeRacer[849:207] cocos2d:已编译
具有分析支持:无程序
接收到的信号:“EXC_BAD_ACCESS”。
感谢您的帮助!
更新
经过更多研究后,我发现这可能是一个循环问题,但我不确定。
我正在调用的超类初始化程序调用[self init]。这会调用我的子类或CCSprite 类的- (id)init 方法吗?如果它调用我的子类,那么这就是明显的问题。查看我的评论以获取我发现的讨论的链接。
【问题讨论】:
-
我发现了这个问题的另一个描述,说这是一个循环问题。显然,CCSprite 的超级初始化程序再次调用 [self init],如果我是对的,调用我的子类初始化程序。这会导致问题正确吗?
标签: iphone objective-c cocoa cocoa-touch cocos2d-iphone