Я создаю собственный класс 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
Это метод - init
подкласса CCLayer
.
Вот журнал консоли:
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:
Apple Computer, Inc. 2010-07-31
09: 16: 33.065 CubeRacer [849: 207]
cocos2d: GL_RENDERER: Apple Software
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 поддерживает
discard_framebuffer: ДА 2010-07-31
09: 16: 33.072 CubeRacer [849: 207]
cocos2d: скомпилировано сПоддержка NPOT:
NO 2010-07-31 09: 16: 33.073
CubeRacer [849: 207] cocos2d: скомпилировано
с поддержкой VBO в TextureAtlas: ДА
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]
.Будет ли это вызывать метод - (id)init
моего подкласса или CCSprite
класса?Если он вызывает мой подкласс, то это очевидная проблема.Проверьте мой комментарий для ссылки на обсуждение, которое я нашел этого.