Resultados 1 al 7 de 7

Tema: Blender ge python comando sleep

  1. #1
    Fecha de ingreso
    Nov 2011
    Mensajes
    82

    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 mí 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 sé cómo.

    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, slep(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, slep (5).
    
    Cont, activate (actu).
    
    Else:
    Cont, deactivate (actu).
    También adjunto una imagen de los logics, gracias de antemano. Un saludo.
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: logics.png 
Visitas: 297 
Tamaño: 48.9 KB 
ID: 171165  

  2. #2
    Fecha de ingreso
    Aug 2004
    Mensajes
    22,247

    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
    Fecha de ingreso
    Nov 2011
    Mensajes
    82

    Blender ge python comando sleep

    Acabo de volver probar lo que me has dicho, Solimán, por si acaso, pero está 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é cómo funciona, alguna idea? Un saludo.

  4. #4
    Fecha de ingreso
    Nov 2011
    Mensajes
    82

    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 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 adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: logics_solucion.png 
Visitas: 152 
Tamaño: 54.2 KB 
ID: 171166  

  5. #5
    Fecha de ingreso
    Aug 2004
    Mensajes
    22,247

    Blender ge python comando sleep

    Puedes emparentar el objeto al empty, solo tienes que cruzar los dos objetos, subo un blend dónde 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 está 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
    Fecha de ingreso
    Nov 2011
    Mensajes
    82

    Blender ge python comando sleep

    Acabo de ver el (*.blend) que has subido, Solimán, 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 está el logic (siendo el hijo), con el objeto que te pide el propio logic que pongas para emparenta (este será el padre).

    Posdata: te adjunto el (*.blend). Un saludo.
    Archivos adjuntados Archivos adjuntados
    Última edición por Beral; 22-08-2012 a las 14:13

  7. #7
    Fecha de ingreso
    Feb 2004
    Mensajes
    4,832

    Blender ge python comando sleep

    Una nota adicional: Blender ejecuta los scripts de manera secuencial. Esto implica que si haces slep() 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 solos demás scripts no se ejecutan, si no que las físicas no siguen funcionando, hasta que el slep termine. Un saludo.

Temas similares

  1. Blender Blender 3.0 Unir vértices con comando merge M
    Por Matias Mittelbach en el foro Modelado
    Respuestas: 4
    : 24-01-2022, 06:23
  2. Blender Blender 64 y python
    Por birckof en el foro Programas de Diseño 3D y CAD
    Respuestas: 2
    : 16-09-2009, 10:29
  3. Python Blender
    Por adrifre7 en el foro Programación y Scripts
    Respuestas: 2
    : 30-01-2009, 09:01
  4. Python y Blender
    Por fog en el foro Programas de Diseño 3D y CAD
    Respuestas: 3
    : 20-12-2006, 14:29
  5. Sugerencias Blender mas Python se puede aceder a un archivo Blender desde otro
    Por yeclapa en el foro Programas de Diseño 3D y CAD
    Respuestas: 4
    : 27-04-2006, 21:02