Foros del Web » Programando para Internet » Python »

Probe de todo. No puedo controlar el tiempo!

Estas en el tema de Probe de todo. No puedo controlar el tiempo! en el foro de Python en Foros del Web. Muy buenas Les quiero avisar primero que he buscado por TODOS lados y he probado muchas opciones para mi problema, pero nada aun lo ha ...
  #1 (permalink)  
Antiguo 07/03/2010, 04:26
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
Desacuerdo Probe de todo. No puedo controlar el tiempo!

Muy buenas

Les quiero avisar primero que he buscado por TODOS lados y he probado muchas opciones para mi problema, pero nada aun lo ha resolvido.

Necesito una ayuda para poder manejar el tiempo en un Juego.

Resulta que el Servidor esta hecho en Python, y esta lleno de Funciones y Clases. Me han dicho las funciones que se usan para comenzar una partida y para terminarla, pero mi tarea es crear un ROUND TIME para cada partida.

Digamos, que cuando comience una ronda, corra un tiempo en segundos, imaginemos hasta 120 (dos minutos) y que si no sucedio nada previamente, esta se termine.

Me han dicho que pruebe con LoopingCall o CallLater, he probado con la funcion TIME pero esto me pausa el juego, y es algo que NO debe suceder, ya que es un juego en tiempo real.

Estoy buscando la manera de crear un tiempo que corra en segundo plano durante la ronda, y que si no se da que termina antes, que finalice a los 2 minutos; pero lo mejor que he logrado fue con un Bucle y el Time.Sleep(), pero esto pausa el juego, y hace caer a los jugadores del servidor.

¿Tienen alguna ayuda, algo para orientarme? Es que ya no se que mas probar... todo lo que estubo a mi alcance lo intente, y nada

Nota: Les comento, lo ultimo que probe fue con el LoopingCall del Twisted, de esta forma, pero me da muchos errores...

Código Python:
Ver original
  1. rt = LoopingCall(self.startRound)
  2. rt.start(120.0)

Muchas Gracias anticipadas.
__________________
CabaSoft Networks
  #2 (permalink)  
Antiguo 07/03/2010, 14:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Probe de todo. No puedo controlar el tiempo!

Deberías de tener un contador de tiempo, he ir checando si ha ocurrido algo. Seria como un manejador de eventos. Tampoco se sobre que modulo (ya sea abierto o cerrado) estés trabajando.

Algo mas o menos así.
Código Python:
Ver original
  1. import time
  2.  
  3. start = time.clock() #Aqui empieza en round
  4. end = time.clock() #Esto es necesario para definir end
  5. while(end - start < 2): #Ha pasado 2 segundos?
  6.     ... #Sigue con la ejecución normal del ciclo
  7.     end = time.clock() #vuelve a tomar el tiempo
  8. print "Tiempo: ", end - start

Etiquetas: control
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:12.