2012-02-23 9 views
6

Solo me preguntaba cómo Cocos administra el ciclo de CPU y el motor de gráficos para CCSprites que están fuera de pantalla, incluidos los que se encuentran en medio de una animación. Si tienes muchos sprites animados dentro y fuera de la pantalla, podría verificar y detener cada animación cuando está fuera de la pantalla y luego reiniciarla cuando esté a punto de volver a encenderse, pero me pregunto si es necesario.¿Las animaciones fuera de pantalla son ignoradas por la representación y la CPU?

Supongamos que tiene una capa con un montón de ellas y la hace invisible, pero no detiene las animaciones de sprites. ¿Seguirán usando el tiempo de CPU?

Respuesta

1

Acabo de hacer una prueba rápida (buena pregunta :)), en un juego donde puedo deslizar la pantalla sobre un mapa grande que contiene imágenes de soldados realizando una animación 'inactiva'. Continúan ejecutándose fuera de la pantalla (inserté CCCallFunc en una secuencia en una repetición para siempre, en un selector simple que registra).

Sospecho que también se ejecutarían cuando el objeto no esté visible. Tiene sentido, especialmente para animaciones. Si miras mi caso de uso, si se detuviera la animación, podría provocar una desconexión cognitiva si el usuario deslizara al soldado dentro y fuera de la vista, especialmente cuando el soldado está caminando en el mapa: podría entrar caminando. la vista sin que el usuario haya hecho ninguna interacción con la pantalla.

+0

interesante; por lo que es probable que la CPU esté trabajando en estas animaciones, incluso si están fuera de la pantalla. Pero supongo que el motor de gráficos no participa en absoluto, a menos que estén en pantalla, a la derecha – johnbakers

+0

@andrewx: nuevo hilo con el que tropecé, muchas cosas interesantes sobre GPU, costo de procesamiento para sprites, etc. http://stackoverflow.com/questions/9502586/does-the-visible-property-affect-performance – YvesLeBorg

Cuestiones relacionadas