Domanda

Ho appena finito di leggere un po 'della documentazione cocos2d, e, per quanto ho capito per aggiungere un'immagine di sfondo in un livello devi fare qualcosa di simile:

Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
[layer addChild:bg z:0];

Il solo fatto che, per quanto il mio test si va può solo aggiungere direttamente lo sprite alla scena in questo modo:

@implementation IntroScene
- (id) init {
self = [super init];
if (self != nil) {
    Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
    [bg setPosition:ccp(240, 160)];
    [self addChild:bg z:0];
    [self addChild:[MenuLayer node] z:1];
}
return self;

}

Qual è la differenza tra questo 2 opzioni, e qual è il modo migliore per impostare uno sfondo per un livello ?. Qualsiasi aiuto sarà molto apprezzato.

È stato utile?

Soluzione

Non è necessario disporre di un livello, ma sono a portata di mano. Pensare degli strati come un modo per raggruppare sprite (sia visivamente e organizzativo). Si consiglia le immagini di sfondo raggruppate come un livello e tutti i nemici in un gioco come un altro strato. Questo permette di trattare con ogni set in modo più pulito. per esempio. È possibile rimuovere un livello specifico invece di trovare tutti i nemici e rimuoverli.

Se aiuta, giocare con i livelli in Photoshop o un programma di grafica. Livelli di lavoro cocos2d simile.

Per una semplice scena, aggiungendo lo sfondo ad un livello o ad una scena non farà molta differenza. Ma non ci vuole molto tempo prima che i benefici della stratificazione calci in.

Altri suggerimenti

Inoltre livelli di controllo cassa (al di sopra di qualsiasi inter-strato z ordinazione).

disegno

In geoSpark, per esempio, ho un livello di sfondo, uno strato di scintilla, uno strato di interfaccia utente, ecc (semplificato). Ma questo mi permette di assicurarsi che la mia roba interfaccia utente è sempre al di sopra qualsiasi materiale di gioco (lo strato scintilla) e tutto ciò che è al di sopra lo sfondo.

Se il gioco fa unico additivo il rendering, l'ordine disegnare non importa molto. :)

- David

scena è una lavagna, strato è una pagina ... notizia è scritto a pagina, ma, se si desidera è possibile scrivere sulla scheda. Se si desidera cancellare tutti i nuovi.

In cocos2d possiamo aggiungere qualsiasi nodo su qualsiasi nodo. Ma dipende dal livello di gerarchia.

È possibile aggiungere livelli sulle scene. Se volete stessa proprietà o guardare per tutti i livelli che si aggiungono su una CCScene è possibile aggiungere quelli CCScene (come nel tuo secondo caso). ma se si vuole avere funzionalità di diverso su ogni strato aggiungere quelli per CCLayer.

CCLayer è pensato per raggruppare un insieme di nodi / sprites per qualche scopo. Per esempio è possibile aggiungere uno strato che comprende le opzioni dopo la pausa un gioco, o un livello HUD per la visualizzazione som tipo sempre sullo schermo insieme a qualche strato di scorrimento (paragonare in alcuni giochi platform a scorrimento).

Infine si può anche CCNode su un CCScene, uno strato su un altro livello, e anche un CCNode su un CCSprite. Ma l'ordine di disegno in contesto grafico in cocos2d diverso.

Spero di avervi dato la differenza.

In bocca al lupo!

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