cocos lua temporizador relacionados

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 )

 

Supongo que te gusta

Origin www.cnblogs.com/taotaodmw/p/12457406.html
Recomendado
Clasificación