Objective c 标度雪碧误差

Objective c 标度雪碧误差,objective-c,cocos2d-iphone,box2d-iphone,Objective C,Cocos2d Iphone,Box2d Iphone,我正在objective-c中开发一个iPhone应用程序,也使用cocos2d进行图形处理。我有一个很大的精灵,我已经做了关于如何缩放精灵的研究,我的代码看起来像这样 //Set up sprite // Use batch node. Faster CCSpriteBatchNode *parent = [CCSpriteBatchNode batchNodeWithFile:@"egg.png" capacity:100]; eggTexture_ = [paren

我正在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”后面有“警告”。非常感谢您的帮助:)谢谢

实际上,类CCTexture2D不响应setScaleX和setScaleY。语句[parent texture]拾取的对象是一个纹理,因此您一定会收到与此类似的错误消息

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[CCTexture2D setScaleX:]:发送到实例0x5e14c70的选择器无法识别”

我不确定您为什么要缩放纹理,我怀疑您更愿意缩放CCSprite,并将其放置在场景中。比如:

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

等等…

实际上,类CCTexture2D不响应setScaleX和setScaleY。语句[parent texture]拾取的对象是一个纹理,因此您一定会收到与此类似的错误消息

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[CCTexture2D setScaleX:]:发送到实例0x5e14c70的选择器无法识别”

我不确定您为什么要缩放纹理,我怀疑您更愿意缩放CCSprite,并将其放置在场景中。比如:

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

等…

好了,现在我将CCTexture2d更改为CCSprite。。。当我以后需要使用box2d中的精灵时,它在代码中不再起作用。如何将CCSprite转换为PhysicsSpriteohh。。。对不起,问题中你的目的不清楚。我对box2D及其API没有实际知识。“PhysicsSprite”是否有一个带有cocos2d精灵的init(创建者),或者甚至是从CcsSprite派生的?这就是我敢猜测的:)。好吧,现在我把CCTexture2d改成了CCSprite。。。当我以后需要使用box2d中的精灵时,它在代码中不再起作用。如何将CCSprite转换为PhysicsSpriteohh。。。对不起,问题中你的目的不清楚。我对box2D及其API没有实际知识。“PhysicsSprite”是否有一个带有cocos2d精灵的init(创建者),或者甚至是从CcsSprite派生的?这是我不敢猜测的:)。