2

スプライトシートから別のテクスチャにスプライトテクスチャを変更したい

//normal sprite
character = [CCSprite spriteWithSpriteFrameName:@"char1.png"];

//change texture
[character setTexture:[[CCTextureCache sharedTextureCache] addImage:[CCSprite spriteWithSpriteFrameName:@"char2.png"]]];

しかし、これは私にエラーを与えます。私はspriteWithSpriteFrameNameなしで試しました、そしてそれは私に空白のテクスチャを与えます。

//error
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CCSprite lastPathComponent]: unrecognized selector sent to instance 0xab32580'

この問題を解決するのを手伝ってください

4

2 に答える 2

2

CCSpriteでdisplayFrameを設定してみてください。例:

[character setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] 
                        spriteFrameByName:@"char2.png"];
于 2013-03-21T12:18:49.140 に答える
2

AddImageは、sprite(CCSprite)ではなく入力imageName(NSString)を取ります。

[[CCTextureCache sharedTextureCache] addImage:TEX_IMAGE_NAME]; 

ここにあなたのクラッシュを解決するあなたのためのいくつかの有用なコードがあります:

CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:@"char2.png"];
[crane setTexture:sprite.texture]; //Already allocated memory? if not thn try below
//crane = [CCSprite spriteWithTexture:sprite.texture];
//crane = [CCSprite spriteWithTexture:sprite.texture rect:rect];
于 2013-03-21T11:21:48.203 に答える