pilas.mundo.agregar_tarea

Si tienes alguna duda sobre cómo usar pilas, o tienes problemas para instalar o hacer algo en pilas comentalo aquí.

pilas.mundo.agregar_tarea

Notapor cosarara97 » Vie Jul 22, 2011 12:06 am

Hola! Otro problema :S
Tengo este codigo:
import pilas

pilas.iniciar()

def bomba_retrasada():
bomba_3 = pilas.actores.Bomba(x=0, y=200)

bomba_1 = pilas.actores.Bomba(x=-200, y=0)
bomba_2 = pilas.actores.Bomba(x=200, y=0)
pilas.mundo.agregar_tarea(5, bomba_retrasada())

pilas.ejecutar()

Lo que yo pensaba que haría era hacer aparecer 2 bombas, y al cabo de unos segundos una 3ª... pero no lo hace :( (porque el agregar_tarea hace esto, no?)
Lo he guardado como bomba.py, lo ejecuto, aparece la ventana un segundo con las 3 bombas y se cierra. En el terminal aparece este error:
Traceback (most recent call last):
File "bomba.py", line 12, in <module>
pilas.ejecutar()
File "/usr/local/lib/python2.7/dist-packages/pilas-0.50-py2.7.egg/pilas/__init__.py", line 214, in ejecutar
mundo.ejecutar_bucle_principal(ignorar_errores)
File "/usr/local/lib/python2.7/dist-packages/pilas-0.50-py2.7.egg/pilas/mundo.py", line 68, in ejecutar_bucle_principal
pilas.motor.ejecutar_bucle_principal(self, ignorar_errores)
File "/usr/local/lib/python2.7/dist-packages/pilas-0.50-py2.7.egg/pilas/motores/motor_sfml.py", line 446, in ejecutar_bucle_principal
mundo._realizar_actualizacion_logica(ignorar_errores)
File "/usr/local/lib/python2.7/dist-packages/pilas-0.50-py2.7.egg/pilas/mundo.py", line 72, in _realizar_actualizacion_logica
self.actualizar_simuladores()
File "/usr/local/lib/python2.7/dist-packages/pilas-0.50-py2.7.egg/pilas/mundo.py", line 139, in actualizar_simuladores
self.tareas.update(1/60.0)
File "/usr/local/lib/python2.7/dist-packages/pilas-0.50-py2.7.egg/pilas/tareas.py", line 49, in update
function(*params)
TypeError: 'NoneType' object is not callable
cosarara97
 
Mensajes: 7
Registrado: Mié Jul 20, 2011 9:50 pm

Re: pilas.mundo.agregar_tarea

Notapor hugoruscitti » Vie Jul 22, 2011 3:24 am

Si, es por la forma en la que indicas la función bomba_retrasada.

En realidad, no tienes que llamarla con los (). El código correcto
tendría que ser:

pilas.mundo.agregar_tarea(5, bomba_retrasada)


Ten en cuenta que quité los ( ) al final de la función. Esto es así
porque la función "agregar_tarea" espera el nombre de una
función, pero no la invocación.

Voy a mejorar ahora mismo el código de pilas para que lo
indique bien, sin dar un error tan raro...

Mil gracias por el dato, cualquier consulta o dudas avisanos
así vamos mejorando pilas entre todos.

Saludos.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina


Volver a Consultas, problemas o bugs.

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados