2012-02-29 4 views
0

Я работаю над iPhone-приложением в объективе-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». Любая помощь очень ценится :) thankyou

ответ

3

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

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

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

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

и т.д ...

+0

Хорошо теперь, когда я изменил CCTexture2d не CCSprite ... он больше не работает позже в коде, когда мне нужно использовать спрайт в box2d, как я повернуть CCSprite to PhysicsSprite –

+0

ohh ... извините, ваша цель была непонятна в вопросе. У меня нет практических знаний о box2D и его API. Есть ли у «PhysicsSprite» инициатор (создатель) с sporos cocos2d или даже происходит от CCSprite? это насколько я бы рискнул догадаться :). – YvesLeBorg

Смежные вопросы