0

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

((Sprite *)[enemiesArray objectAtIndex:index]).image = baseImage;

エラーメッセージが表示されます:

error: request for member 'image' in something not a structure or union

私は何が間違っているのですか?

読んでくれてありがとう。

4

4 に答える 4

1

次のようにするとよいでしょう。

初期化のどこかに:

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 で実行できます。

他のソリューションでは、アニメーションを実行中にテクスチャを変更しようとすると、アニメーションが壊れる可能性があります。

于 2011-07-14T09:20:19.540 に答える
1

私はこのようにします:

Texture2D *texture = [[Texture2D alloc] initWithImage:myUIImage]
[sprite setTexture: texture];
于 2009-10-26T20:45:29.867 に答える
0

私はこれがこれを行う方法だとは思いません。それではなく、initメソッドの1つを呼び出す必要があります。

-(id)initWithCGImage:(CGImageRef)image;

-(id)initWithTexture:(Texture2D *)tex;

-(id)initWithFile:(NSString *)imageFile;

私のゲームでは、これを別の方法で行います。「Zed」というオブジェクトのクラスがあり、これも配列に格納しています。フィールドとしてスプライトがあり、画像を変更したい場合は、スプライト全体を交換し、古いものを非表示にして新しいものを表示するようにします。

于 2009-09-17T22:33:33.863 に答える
0

使ってみて

[((Sprite *)[enemiesArray objectAtIndex:index]) setImage:baseImage];

于 2009-10-13T05:26:58.880 に答える