Gracias Gracias:  0
Resultados 1 al 7 de 7

Tema: Blender GE Python comando sleep

  1. #1
    Miembro Avatar de Beral
    Fecha de ingreso
    Nov 2011
    Ubicación
    Madrid, España.
    Mensajes
    84

    Blender Blender GE Python comando sleep

    Muy buenas, hacia ya tiempo que no me pasaba por aquí!!
    Bueno e caso es que estaba programando con logic brinks y python para mi proyecto y se me ha dado el siguiente problema que paso a explicar:
    El objetivo de todo es hacer que un empty cree un objeto, y nada más crea el objeto, este se emparente con el propio empty que lo ha creado. El caso es que crea el objeto, pero no lo emparenta. El código funciona bien por separado es decir si pruebo solo a crear el objeto o a solo emparentarlo funciona, el problema es cuando se tiene que hacer todo junto. Pienso que la solución puede estar en que se ejecute primero la parte en que crea el objeto y un medio segundo más tarde la parte en que se emparente, el caso es que no se como.

    He intentado con un bucle a ver si se solucionaba pero nada, creo que el tiempo que tarda en ejecutarse es mínimo como para que funcione.
    Luego intente usar el comando time.sleep(segundos), pero creo que blender no tiene ni idea de lo que le estoy contando. Así me quedó el código:
    Código:
    import bge
    import time
    
    def main():
    
        cont = bge.logic.getCurrentController()
        own = cont.owner
    
        sens = cont.sensors['inicio']
        actu = cont.actuators['emparentar']
        
    
        if sens.positive:
            time.sleep (5)
            cont.activate(actu)
              
        else:
            cont.deactivate(actu)
    También adjunto una imagen de los logics, gracias de antemano.
    Un Saludo!
    Miniaturas adjuntadas Miniaturas adjuntadas Blender GE Python comando sleep-logics.png  

  2. #2
    Senior Member Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Ubicación
    Torrevieja-Alicante
    Mensajes
    10,198

    Re: Blender GE Python comando sleep

    Yo de python no se casi nada, pero en el logic brick, por la imagen que has puesto, lo que haces es emparentar el Empty a la malla, no la malla al Empty
    (y explicas que quieres que el objeto se emparente al empty).
    Perdona si no es eso..
    Saludos

  3. #3
    Miembro Avatar de Beral
    Fecha de ingreso
    Nov 2011
    Ubicación
    Madrid, España.
    Mensajes
    84

    Re: Blender GE Python comando sleep

    Acabo de volver probar lo que me has dicho, Soliman, por si acaso, pero esta bien como lo he puesto, cuando lo pruebo por separado se emparenta la malla al empty y funciona. Date cuenta que se emparenta el objeto del logic al que te pide que pongas para emparentar, no alrreves.
    También lo he intentado hacer con la propiedad timer, pero no sé como funciona, alguna idea?

    Un Saludo!!

  4. #4
    Miembro Avatar de Beral
    Fecha de ingreso
    Nov 2011
    Ubicación
    Madrid, España.
    Mensajes
    84

    Re: Blender GE Python comando sleep

    Bueno al parecer acabo de encontrar una solución, bueno, no lo llamaría solución más bien parche, pero al menos funciona!
    La cosa ha sido que he probado a poner que que el emparentamiento se active cuando una propiedad booleana asignada a la malla sea distinta, y al parecer se procesa a destiempo del proceso de crear la propia malla o algo así. El resultado es que se crea la malla y acto seguido se emparenta, funcionando perfectamente! Lo bueno es que ha bastado con logics solo, adjunto la imagen!!

    Un Saludo!!
    Miniaturas adjuntadas Miniaturas adjuntadas Blender GE Python comando sleep-logics_solucion.png  

  5. #5
    Senior Member Avatar de Soliman
    Fecha de ingreso
    Aug 2004
    Ubicación
    Torrevieja-Alicante
    Mensajes
    10,198

    Re: Blender GE Python comando sleep

    Puedes emparentar el objeto al empty, solo tienes que cruzar los dos objetos.
    Subo un Blend donde están activos los dos layers, pero selecciona solo el primer layer, luego presionas leta P para entrar en el Game, luego presionas barra espaciadora, para añadir un cubo a la escena (el cubo que esta en el segundo layer) y luego presionas flecha izquierda para que se emparente el cubo al Empty y a la vez se mueva en eje X
    Archivos adjuntados Archivos adjuntados

  6. #6
    Miembro Avatar de Beral
    Fecha de ingreso
    Nov 2011
    Ubicación
    Madrid, España.
    Mensajes
    84

    Re: Blender GE Python comando sleep

    Acabo de ver el .blend que has subido, Soliman, y tienes los logics puestos justo como lo puse yo, es decir el cubo se emparenta con el empty por el logic del cubo de emparentar. De hecho prueba a quitar el logic de emparentar que tienes puesto en el empty, te funciona igual. Es decir que se emparenta el objeto en el que esta el logic (siendo el hijo), con el objeto que te pide el propio logic que pongas para emparenta (este será el padre).


    PD: Te adjunto el .blend

    Un Saludo!!
    Archivos adjuntados Archivos adjuntados
    Última edición por Beral; 22-08-2012 a las 15:13

  7. #7
    Vampiro Giovanni Avatar de Pepius
    Fecha de ingreso
    Feb 2004
    Ubicación
    Guadassuar, Valencia
    Mensajes
    4,998

    Re: Blender GE Python comando sleep

    Una nota adicional:

    Blender ejecuta los scripts de manera secuencial. Esto implica que si haces sleep() en un script el orden de ejecución de los scripts no va a variar, pues el motor no sigue funcionando hasta que no termina dicho script.
    Nótese que no solo los demás scripts no se ejecutan, si no que las físicas no siguen funcionando, etc, hasta que el sleep termine.

    Un saludo.

Temas similares

  1. Blender Blender 64 y Python
    Por birckof en el foro Problemas con Programas
    Respuestas: 2
    Último mensaje: 16-09-2009, 11:29
  2. Python blender
    Por adrifre7 en el foro Programación y Scripts
    Respuestas: 2
    Último mensaje: 30-01-2009, 11:01
  3. Python en GE de Blender
    Por Bardo_Slaine en el foro Programación y Scripts
    Respuestas: 0
    Último mensaje: 05-04-2008, 10:12
  4. Python en Blender
    Por Prometeo en el foro Infografía General
    Respuestas: 7
    Último mensaje: 02-07-2007, 20:25
  5. Python y Blender
    Por fog en el foro Infografía General
    Respuestas: 3
    Último mensaje: 20-12-2006, 16:29

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •