Ошибка спрайта масштаба - PullRequest
0 голосов
/ 29 февраля 2012

Я работаю над приложением для iPhone в Objective-C, также использующим cocos2d для графики. У меня большой спрайт, и я провел исследование о том, как масштабировать спрайт, и мой код выглядит следующим образом ...

//Set up sprite
    // Use batch node. Faster
    CCSpriteBatchNode *parent = [CCSpriteBatchNode batchNodeWithFile:@"egg.png" capacity:100];
    eggTexture_ = [parent texture];

    [eggTexture_ setScaleX: 10/eggTexture_.contentSize.width];
    [eggTexture_ setScaleY: 10/eggTexture_.contentSize.height];

И это прекрасно компилируется! Тогда я получаю ошибку времени выполнения "SIGABRT". Я не могу найти проблему. Это, наверное, что-то удивительное. Оглядываясь назад, можно увидеть «предупреждения» после тех последних строк, которые гласят: «CCTexture2d может не отвечать на setScaleX». Любая помощь очень ценится :) спасибо

1 Ответ

3 голосов
/ 29 февраля 2012

На самом деле, класс CCTexture2D не отвечает на setScaleX и setScaleY.Объект, выбранный оператором [родительская текстура], является текстурой, поэтому вы должны получить сообщение об ошибке, похожее на это

* Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина:'- [CCTexture2D setScaleX:]: нераспознанный селектор отправлен в экземпляр 0x5e14c70'

Я не уверен, почему вы захотите масштабировать текстуру, я подозреваю, что вы бы предпочли масштабировать CCSprite и поместить его в вашу сцену.как:

CCSprite *eggSprite_ = [CCSprite spriteWithTexture:[parent texture]];
[eggSprite_ setScaleX: 10/eggSprite_.contentSize.width];

и т.д ...

...