temporizadores locales utilizados, o más, juicio lógico y se basan en muchos de los partido de realizarse para cada marco. Planificador rápido para programar el archivo de paquete en Lua. Si usted es nuevo en rápida, es posible que de acuerdo con la API oficial para escribir un temporizador es un error, lo que sugiere programación es un valor nulo, debido a que los otros módulos de la inicialización se cargan, con la excepción de que el programador no contenía en, por lo que cuando está en uso, lo primero es la introducción de este módulo,
programador local = requieren ( " framework.scheduler " )
Usted puede mirar en el resto de la API para escribir, rápida escritura antes de que el temporizador o volver a revisar la lua nativa cocos2dx escrito para temporizador
Cada llamada trama
vacío scheduleUpdateWithPriority ( int prioridad) vacío scheduleUpdateWithPriorityLua ( int nHandler, int prioridad)
Especificar el intervalo de llamada
unsigned int scheduleScriptFunc (unsigned int nHandler, flotar fInterval, bool bPaused)
Hay evento de temporizador cancelado
vacío unscheduleScriptEntry (sin signo int uScheduleScriptEntryID)
El planificador rápida principalmente la encapsulación de las dos últimas funciones. En cocos utilizar C ++, se utiliza un temporizador, cada cuadro es nada más que llamadas, duración de la llamada de intervalo infinidad de veces, cada vez que un número determinado de llamadas, llamada intervalo de tiempo, cancelar llamar a algunos.
Cada llamada trama
hora local = 0 actualización función local (dt) tiempo = tiempo + 1 etiqueta: setString ( cadena .formato ( " % d " , tiempo)) terminar scheduler.scheduleUpdateGlobal (actualización)
Llame a un cierto intervalo de tiempo
-
hora local = 0 función local onInterval (dt) tiempo = tiempo + 1 etiqueta: setString ( cadena .formato ( " % d " , tiempo)) terminar scheduler.scheduleGlobal (onInterval, 1 )
Intervalo llama una vez, este paquete bueno, muy popular
hora local = 0 función local onInterval (dt) tiempo = tiempo + 1 etiqueta: setString ( cadena .formato ( " % d " , tiempo)) de impresión ( " sobre " ) terminar scheduler.performWithDelayGlobal (onInterval, 1 )
Vistazo a cómo esto se puede lograr
función scheduler.performWithDelayGlobal (oyente, tiempo) mango local de mango = sharedScheduler: scheduleScriptFunc (function () scheduler.unscheduleGlobal (mango) oyente () final, tiempo, falsa ) de retorno mango final
De hecho, después de un cierto intervalo de tiempo, detenerlo y, a continuación, realizar una devolución de llamada en él. El último paquete es para detener el temporizador
scheduler.unscheduleGlobal ()
Su argumento es que la parte delantera del temporizador devuelve un identificador, por lo que si usted necesita hacer una parada en la parte posterior, recuerde dejar un valor de retorno se crea muy bien.
---------------------
Pero en el juego, podríamos hacer una cuenta atrás, es decir, el número de llamadas de los intervalos de tiempo especificados, esto no está encapsulado en el rápido, pero todavía podemos lograr sobre sí mismo, el principio es muy simple, una vez cada ejecución el número de dólares, para alcanzar el número especificado de veces para detener el temporizador,
mango local de intervalo local de = 1 repeatIndex locales = 3 índice local = 0 sharedScheduler locales = CCDirector: sharedDirector (): getScheduler () mango = sharedScheduler: scheduleScriptFunc (function () index = index + 1 etiqueta: setString ( cadena .formato ( " % d "index)) si index> = repeatIndex entonces scheduler.unscheduleGlobal (mango) de impresión ( " sobre " ) final final, intervalo, falsa )