2012-02-23 8 views
6

Basta chiedersi come Cocos gestisce il ciclo della CPU e il motore grafico per CCSprites che sono fuori dallo schermo, compresi quelli nel mezzo di un'animazione. Se hai molti sprite animati sullo schermo e fuori dallo schermo, posso controllare e fermare ogni animazione quando è fuori dallo schermo, quindi riavviarla quando sta per tornare, ma mi chiedo se è necessario?Le animazioni fuori schermo sono ignorate dal rendering e dalla CPU?

Supponi di avere uno strato con un gruppo di elementi e di rendere invisibile il livello, ma non interrompere le animazioni di sprite. Utilizzeranno ancora il tempo della CPU?

risposta

1

Ho appena fatto un test rapido (buona domanda :)), in un gioco in cui posso far scorrere lo schermo su una grande mappa che contiene immagini di soldati che eseguono un'animazione "inattiva". Continuano a funzionare quando fuori dallo schermo (ho attaccato un CCCallFunc in una sequenza in una ripetizione per sempre, a un semplice selettore che registra).

Sospetto che verrebbero eseguiti anche quando l'oggetto non è visibile. Ha un senso, soprattutto per le animazioni. Se osservi il mio caso d'uso, se l'animazione è stata interrotta, potrebbe causare una disconnessione cognitiva se l'utente ha fatto scivolare il soldato dentro e fuori dalla vista, specialmente quando il soldato sta facendo una passeggiata sulla mappa - potrebbe effettivamente entrare nel walk-in la vista senza che l'utente abbia effettuato alcuna interazione con lo schermo.

+0

interessante; quindi la CPU probabilmente sta lavorando a queste animazioni, anche se sono fuori dallo schermo. Ma presumo che il motore grafico non partecipi del tutto a meno che non siano sullo schermo, a destra – johnbakers

+0

@andrewx: nuovo thread in cui sono incappato, molte cose interessanti su GPU, costi di elaborazione per gli sprite, ecc. Http://stackoverflow.com/questions/9502586/fa-il-visibile-proprietà-influire-prestazioni – YvesLeBorg

Problemi correlati