質問

配列のスプライトが表示している画像を変更しようとしています。私が使用しているコードは次のとおりです。

((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];

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top