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).

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top