iPhone - cocos2d - анимация и класс C ++ - PullRequest
0 голосов
/ 14 октября 2010

Я пытаюсь добавить анимацию в свою игру (приложение для iPhone, используя cocos2d).

Игра была написана на C ++, и теперь я хочу запустить ее на iPhone, поэтому большинство классовв с ++.

Все выглядит так.Я создаю CCSprite, CCAction в классе obj-c в функции init, а затем запускаю CCAction для спрайта.И анимация работает.

Но я хочу поместить эти переменные CCSprite и CCAction в мой класс C ++.Я создаю * CCSprite в классе init и отправляю этот указатель в класс c ++.Затем я создаю CCAction и запускаю его на спрайте.

И после этого, когда в моей функции init (класс obj-c) выполните:

return self;

, тогда приложение работает,работает и работает, и ничего не происходит.В консоли я получаю только это сообщение:

* Ошибка подтверждения в - [CCSprite setTexture:], /Users/Michal/..../libs/cocos2d/CCSprite.m: 898 Завершение в ответ на завершение SpringBoard.

Я не знаю, что мне делать дальше ... Можно ли успешно сохранить CCSprite / Action и т. д. в классе C ++?

1 Ответ

3 голосов
/ 21 ноября 2010

Убедитесь, что вы правильно инициализировали текстуру, прежде чем пытаться использовать ее следующим образом:

CCTexture2D *redButtonNormal = [[CCTextureCache sharedTextureCache] addImage:@"RedButtonNormal.png"];

, затем инициализируйте спрайт (или подкласс спрайта - в этом примере spuButton является подклассом CCSprite):

spuButton *redButton = [spuButton spuButtonWithTexture:redButtonNormal];

Примечание: поскольку это подкласс, мне пришлось настроить методы init для него следующим образом (вы должны сделать это, если вы подкласс CCSprite):

+ (id)spuButtonWithTexture:(CCTexture2D *)normalTexture
{
    return [[[self alloc] initWithTexture:normalTexture] autorelease];
}

- (id)initWithTexture:(CCTexture2D *)aTexture
{
    if ((self = [super initWithTexture:aTexture]) ) {

        state = kButtonStateNotPressed;
    }

    return self;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...