Как мне просто изменить изображение спрайта в cocos2d? - PullRequest
9 голосов
/ 26 апреля 2011

Я пробовал

[[CCTextureCache sharedTextureCache] addImage: @"still.png"];

Но я всегда получаю искаженное изображение по некоторым причинам.Скорее всего, потому что мои изображения не имеют одинаковое разрешение, но для этого приложения они не могут иметь одинаковое разрешение.Как мне изменить изображение спрайта, не проходя сложный процесс создания таблицы спрайтов, анимации или чего-то в этом роде.

Ответы [ 7 ]

16 голосов
/ 27 апреля 2011
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"]];
10 голосов
/ 26 апреля 2011

Это самый простой способ изменить изображение спрайта (если он загружен через таблицу спрайтов), это определенно работает (я использую его все время в своей игре). mySprite - это имя экземпляра спрайта:

[mySprite setDisplayFrame:
[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName: @ "sprite1.png"] ];

6 голосов
/ 26 апреля 2011

Вы бы просто вызвали функцию sprite.texture .

Пример

В вашем методе инициализации:

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;

Очень просто!

Надеюсь, это помогло!

1 голос
/ 20 мая 2014

В cocos2d v3 я смог сделать это с ...

[mySprite setSpriteFrame:[CCSpriteFrame frameWithImageNamed:@"two.png"]]

... но я понятия не имею, есть ли у этого побочные эффекты, которые причинят мне боль в долгосрочной перспективе. :)

0 голосов
/ 28 июня 2015

В Cocos2d-x v3 вы можете использовать my_sprite->setTexture(sprite_path);

0 голосов
/ 12 марта 2014

Я использую cocos2d 3.0, и этот код работает для меня:

 [_mySprite setTexture:[CCTexture textureWithFile:@"myFile.png"]];
0 голосов
/ 18 июля 2013

Эта простая строка может выполнить вашу задачу.

[sprite setTexture:[[CCTextureCache sharedTextureCache] addImage:@"slot.png"]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...