我试过
[[CCTextureCache sharedTextureCache] addImage: @"still.png"];
但出于某种原因,我总是以失真的图像结束。这很可能是因为我的图像分辨率不同,但对于这个应用程序,它们不能拥有相同的分辨率。如何更改精灵的图像,而无需经历制作精灵表格或动画或其中任何一个的复杂过程。
答案 0 :(得分:16)
urSprite = [CCSprite spriteWithFile:@"one.png"]; urSprite.position = ccp(240,160); [self urSprite z:5 tag:1]; // Changing the image of the same sprite [urSprite setTexture:[[CCTextureCache sharedTextureCache] addImage:@"two.png"]];
答案 1 :(得分:10)
这是更改精灵图像的最直接方式(如果你通过spritesheet加载它)这绝对有效(我在游戏中一直使用它)。 mySprite是精灵实例的名称:
[mySprite setDisplayFrame:
[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@“sprite1.png”] ];
答案 2 :(得分:6)
您只需调用 sprite.texture 函数。
<强> 实施例 强>
在您的init方法中:
CCTexture2D *tex1 = [[CCTextureCache sharedTextureCache] addImage:@"still.png"];
CCTexture2D *tex2 = [[CCTextureCache sharedTextureCache] addImage:@"anotherImage.png"];
CCSprite *sprite = [CCSprite spriteWithTexture:tex1];
//position the sprite
[self addChild:sprite];
然后将精灵的图像更改为tex2:
sprite.texture = tex2;
非常简单!
希望这有帮助!
答案 3 :(得分:1)
在cocos2d v3中,我能够用...完成此任务。
[mySprite setSpriteFrame:[CCSpriteFrame frameWithImageNamed:@"two.png"]]
...但我不知道这是否有副作用从长远来看会伤害我。 :)
答案 4 :(得分:0)
这个简单的一行可以完成你的任务。
[sprite setTexture:[[CCTextureCache sharedTextureCache] addImage:@"slot.png"]];
答案 5 :(得分:0)
我使用cocos2d 3.0,这段代码对我有用:
[_mySprite setTexture:[CCTexture textureWithFile:@"myFile.png"]];
答案 6 :(得分:0)
在Cocos2d-x v3中,您可以使用my_sprite->setTexture(sprite_path);