配列からcocos2dスプライトの画像を変更する方法は?
-
07-07-2019 - |
質問
配列のスプライトが表示している画像を変更しようとしています。私が使用しているコードは次のとおりです。
((Sprite *)[enemiesArray objectAtIndex:index]).image = baseImage;
エラーメッセージが表示されます:
error: request for member 'image' in something not a structure or union
何が間違っているのですか?
お読みいただきありがとうございます。
解決
これがこれを行う方法だとは思いません。 それよりも、initメソッドの1つを呼び出す必要があります。
-(id)initWithCGImage:(CGImageRef)image;
-(id)initWithTexture:(Texture2D *)tex;
-(id)initWithFile:(NSString *)imageFile;
ゲームではこれとは異なる方法で、配列に格納する「Zed」というオブジェクトのクラスがあります。フィールドとしてスプライトがあり、画像を変更する場合は、スプライト全体を交換し、古いものを非表示にして新しいものを表示するようにします。
他のヒント
このようにします:
Texture2D *texture = [[Texture2D alloc] initWithImage:myUIImage]
[sprite setTexture: texture];
次のようにしてください:
initのどこか:
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で実行できます。
他の解決策は、テクスチャーを変更しているときにアニメーションを壊してしまう可能性があります。
使用してみる
[((Sprite *)[enemiesArray objectAtIndex:index])setImage:baseImage];
所属していません StackOverflow