我正在尝试更改数组中的精灵正在显示的图像。这是我正在使用的代码:

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

我收到错误消息:

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

我做错了什么?

感谢阅读。

有帮助吗?

解决方案

我认为这不是这样做的方法。 而不是你应该调用其中一个init方法:

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