2010-03-30 8 views
135

Estoy haciendo un script con ruby ​​que debe renderizar fotogramas a 24 fotogramas por segundo, pero necesito esperar 1/24 de segundo entre enviar los comandos. ¿Cuál es la mejor manera de dormir por menos de un segundo?Ruby sueño o retraso de menos de un segundo?

+5

Creo que es normalmente posible para no actualizar la pregunta con una respuesta? ¿No desanima a los usuarios a leer las respuestas reales? –

+0

Tienes razón, eliminé mi actualización. –

Respuesta

184
sleep(1.0/24.0) 

cuanto a su seguimiento pregunta si esa es la mejor manera: No, usted podría conseguir una tasa de fotogramas no tan suaves debido a que la prestación de cada cuadro puede no tener la misma cantidad de tiempo.

Usted podría tratar de una de estas soluciones:

  • utilizar un temporizador que dispara 24 veces por segundo con el código de dibujo.
  • Cree tantos marcos como sea posible, cree el movimiento según el tiempo transcurrido, no por cuadro.
+14

@ Funkodebat Estoy bastante seguro de que cada runtime básico de Ruby hace esto por usted. –

+1

Ruby recordará ese derecho? –

+2

@JosephSilvashy: No tengo ninguna información sobre el intérprete de rubí, pero ruby ​​mri no hace memoria por defecto. Pero espero que haga este tipo de optimización al convertir el código fuente en código de bytes. –

86

paso de flotador para el sueño, como sleep 0.1

Cuestiones relacionadas