我正在尝试更改数组中的精灵正在显示的图像。这是我正在使用的代码:
((Sprite *)[enemiesArray objectAtIndex:index]).image = baseImage;
我收到错误消息:
error: request for member 'image' in something not a structure or union
我做错了什么?
感谢阅读。
答案 0 :(得分:1)
我这样做:
Texture2D *texture = [[Texture2D alloc] initWithImage:myUIImage]
[sprite setTexture: texture];
答案 1 :(得分:1)
你最好这样做:
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完成。
当您尝试更改纹理时,其他解决方案可能会破坏您的动画。
答案 2 :(得分:0)
我认为这不是这样做的方法。 而不是你应该调用其中一个init方法:
- (id)initWithCGImage:(CGImageRef)image;
- (id)initWithTexture:(Texture2D *)tex;
- (id)initWithFile:(NSString *)imageFile;
在我的游戏中,我的方式不同,我有一个名为'Zed'的对象类,我也存储在一个数组中。它有一个精灵作为一个字段,如果我想改变图像我交换整个精灵,并确保我隐藏旧的并显示新的。
答案 3 :(得分:0)
尝试使用
[((Sprite *)[enemiesArray objectAtIndex:index])setImage:baseImage];