配列のスプライトが表示している画像を変更しようとしています。これが私が使用しているコードです:
((Sprite *)[enemiesArray objectAtIndex:index]).image = baseImage;
エラーメッセージが表示されます:
error: request for member 'image' in something not a structure or union
私は何が間違っているのですか?
読んでくれてありがとう。
配列のスプライトが表示している画像を変更しようとしています。これが私が使用しているコードです:
((Sprite *)[enemiesArray objectAtIndex:index]).image = baseImage;
エラーメッセージが表示されます:
error: request for member 'image' in something not a structure or union
私は何が間違っているのですか?
読んでくれてありがとう。
次のようにするとよいでしょう。
初期化のどこかに:
CCSpriteBatchNode *spritesheet = [CCSpriteBatchNode batchNodeWithFile:@"car_anim.png"];
[self addChild:spritesheet];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"car_anim.plist"];
どこかで実行中:
[yourSprite setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"car_left.png"]];
*.plist と *.png は Zwoptex で実行できます。
他のソリューションでは、アニメーションを実行中にテクスチャを変更しようとすると、アニメーションが壊れる可能性があります。
私はこのようにします:
Texture2D *texture = [[Texture2D alloc] initWithImage:myUIImage]
[sprite setTexture: texture];
私はこれがこれを行う方法だとは思いません。それではなく、initメソッドの1つを呼び出す必要があります。
-(id)initWithCGImage:(CGImageRef)image;
-(id)initWithTexture:(Texture2D *)tex;
-(id)initWithFile:(NSString *)imageFile;
私のゲームでは、これを別の方法で行います。「Zed」というオブジェクトのクラスがあり、これも配列に格納しています。フィールドとしてスプライトがあり、画像を変更したい場合は、スプライト全体を交換し、古いものを非表示にして新しいものを表示するようにします。
使ってみて
[((Sprite *)[enemiesArray objectAtIndex:index]) setImage:baseImage];