我正在使用Objective-c中的iPhone应用程序,也使用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
答案 0 :(得分:3)
实际上,CCTexture2D类不响应setScaleX和setScaleY。语句[父纹理]选取的对象是纹理,因此您必须收到类似于此
的错误消息* 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [CCTexture2D setScaleX:]:无法识别的选择器发送到实例0x5e14c70'
我不确定为什么你想要缩放纹理,我怀疑你宁愿缩放CCSprite,并把它放在你的场景中。喜欢:
CCSprite *eggSprite_ = [CCSprite spriteWithTexture:[parent texture]];
[eggSprite_ setScaleX: 10/eggSprite_.contentSize.width];
等等......