iOS - Modifica immagine sprite CCFile a livello di codice [chiuso]
-
23-12-2019 - |
Domanda
Sto usando Cocoa2Ds per creare un gioco per iOS.So che probabilmente è semplice, ma esiste un modo per modificare le immagini sprite di un CCFile a livello di codice?
Ho creato un oggetto sprite eroe e poi l'ho trascinato nella scena principale utilizzando SpriteBuilder.
In definitiva, vorrei cambiare l'oggetto sprite dell'eroe con un'altra immagine anch'essa animata (in movimento).
Soluzione
Hai chiesto di modificare un'immagine "CCFile", ma presumo che intendessi l'immagine "CCSprite".In tal caso, è possibile modificare un'immagine sprite creando prima un frame sprite e quindi assegnandolo allo sprite:
CCSpriteFrame * frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"NameOfFrame"];
[mySprite setDisplayFrame:frame];
Affinché ciò funzioni, l'immagine a cui fai riferimento deve essere già caricata in memoria, ad esempio tramite un foglio sprite:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"SpriteSheetFileName.plist"];
Hai menzionato l'animazione.Se stai cercando di animare uno sprite e tutte le immagini sono caricate in memoria e hanno lo stesso nome tranne che per un numero sequenziale aggiunto ad esse, allora puoi fare in modo che uno sprite si muova attraverso queste immagini, animandolo così, come segue:
NSString * animateCycle = [NSString stringWithFormat:@"ImageName 00%%02d.png"];
I nomi delle immagini sarebbero sulla falsariga di "ImageName 0001.png", "ImageName 0002.png" e così via.
CCActionInterval * action = [CCAnimate actionWithSpriteSequence:animateCycle numFrames:8 delay:.1 restoreOriginalFrame:YES];
[mySprite runAction:action];
Questo farà scorrere le immagini in base al ritardo designato.
Spero che aiuti.