iOS – программное изменение изображения спрайта CCFile
-
23-12-2019 - |
Вопрос
Я использую Cocoa2Ds для создания игры для iOS.Я знаю, что это, вероятно, просто, но есть ли способ программно изменить изображения спрайтов CCFile?
Я создал объект-спрайт героя, а затем перетащил его на главную сцену с помощью SpriteBuilder.
В конечном счете, я хотел бы изменить объект-спрайт героя на другое изображение, которое также анимируется (движется).
Решение
Вы спрашивали об изменении изображения «CCFile», но я предполагаю, что вы имели в виду изображение «CCSprite».Если да, то изменить изображение спрайта можно, сначала создав рамку спрайта, а затем назначив ее спрайту:
CCSpriteFrame * frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"NameOfFrame"];
[mySprite setDisplayFrame:frame];
Чтобы это работало, изображение, на которое вы ссылаетесь, должно быть уже загружено в память, например, через лист спрайтов:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"SpriteSheetFileName.plist"];
Вы упомянули анимацию.Если вы пытаетесь анимировать спрайт, и все изображения загружены в память и имеют одно и то же имя, за исключением добавленного к ним порядкового номера, то вы можете заставить спрайт перемещаться по этим изображениям, тем самым анимируя его, следующим образом:
NSString * animateCycle = [NSString stringWithFormat:@"ImageName 00%%02d.png"];
Имена изображений будут выглядеть следующим образом: «ImageName 0001.png», «ImageName 0002.png» и т. д.
CCActionInterval * action = [CCAnimate actionWithSpriteSequence:animateCycle numFrames:8 delay:.1 restoreOriginalFrame:YES];
[mySprite runAction:action];
Это будет циклически перебирать изображения в зависимости от назначенной задержки.
Надеюсь, это поможет.