![]() |
|
Bienvenido a Foros 3DPoder.. Usted esta viendo este foro como invitado, no esta registrado todavía, lo que limita su visión del foro. Si quiere unirse gratis a la mayor comunidad del diseño gráfico de habla hispana, tener acceso a publicar y responder mensajes, tener mensajes privados con otros miembros(PM), responder encuestas, publicar sus imágenes para que las vea el resto del mundo, tener acceso a los video_tutoriales, y muchas cosas más, no lo dude. Registrarse es rápido, simple y gratuito, agregate hoy a la mayor comunidad 3D de habla hispana! ! Si usted tiene algún problema con su registro, por favor , díganoslo aquí.
|
![]() |
|
|||||||
|
|
#1 |
|
Miembro
Fecha de Ingreso: junio-2006
Mensajes: 49
|
Bueno.. aquí estoy de nuevo dando la coña con el python en Blender XD...
Bueno, resulta que estoy haciendo un jueguecito para que un muñeco se mueva según pulses en una pista en el suelo (el blender lo detecta como un joystick) con 8 flechitas. Aqui planteo la situación... Quiero hacer que el muñeco cuando estén pulsadas dos teclas de la pista (izquierda y derecha), el muñeco se agache, y en el momento que las sueltes el muñeco salte... Probé con unas cuantas maneras, pero ninguna me funcionó, la ultima es la que vi mejor, pero seguramente también sea una porquería, pero no se me ocurre otra manera... El problema es que en el scrypt metí un bucle "while", y el blender se me queda colgado cuando la pongo... XD... y no se por qué, entonces no se si es que el scrypt esta fatal o si hay algún problema solo con ese bucle.... Por favor!, que alguien me ayude... llevo unos días y me empieza a sacar de quicio xD, tiene que ser simplísimo... pero es lo primero que programo en mi vida... asi que todavía no le tengo cogido el truco^^ Un saludo a todoS!
__________________
Que es la vida, un frenesí, que es la vida una ilusión, un sueño, una ficción. Que el mayor Bien es pequeño... Toda la realidad es sueño y los sueños, sueños son |
|
|
|
|
|
#2 |
|
BlenderAdicto
Fecha de Ingreso: diciembre-2004
Ubicación: Valencia-España
Mensajes: 10,138
|
Yo hace tiempo que no hago nada con el GE, pero el bucle ese te sobra, porque...
si no recuerdo mal el script se va a ejecutar siempre que los sensores cumplan las operaciones lógicas (en este caso AND), o sea, que el script se ejecutará una vez en cada ciclo mientras los botones del joystick estén pulsados.De todas formas, me parece que te estás complicando mucho la vida haciendo un script solo para eso, cuando podrías simplemente usar los Logic Briks de forma muy sencilla |
|
|
|
|
|
#3 |
|
Miembro
Fecha de Ingreso: junio-2006
Mensajes: 49
|
Buenas noches!
Respecto a lo del bucle, lo puse por la siguiente razón. Cada vez que se ejecutaba el script los atributos de la clase estado(para saber que esta haciendo el muñeco en cada momento), se restablecen, así que nunca esta haciendo nada... al menos de manera continua, por eso puse el while, para que el bucle no sea en el scrypt entero, sino solo en la parte que yo quiera... Respecto a lo de la facilidad y demás, supongo que tienes razón, es mas, hice unas pruebas sin programar, pero, estoy aprendiendo xD... Por eso estoy haciéndolo por python ^^.... Se me ocurrió una idea, pero al intentarla se me chafó todo xD... Se me ocurrió, que para que los atributos que definí en la clase, no se vuelvan "False" cada vez que se ejecute el scrypt, en vez de hacer la clase, lo que cojo son unos "Property" del GE de blender, eso valdría, ¿no?... Lo único es que no se como coger un property XD... probé con "getProperty", pero no me funcionó... ¿Alguien sabría decirme como se hace? SaludoS!
__________________
Que es la vida, un frenesí, que es la vida una ilusión, un sueño, una ficción. Que el mayor Bien es pequeño... Toda la realidad es sueño y los sueños, sueños son |
|
|
|
|
|
#4 |
|
Ready? Go!
Fecha de Ingreso: junio-2003
Ubicación: Castellón
Mensajes: 11,213
|
Tengo el Game Engine bastante oxidado, pero el mejor consejo es que te descargues juegos hechos con Blender (de los que hay en la página oficial, por ejemplo) y estudies los distintos scripts que tiene, y qué hace cada parte. Se aprende un montón sobre su filosofía de funcionamiento.
Sobre lo del bucle, tú lo has dicho: no querías que el bucle fuera el script entero, sino sólo la parte que tú querías... así que se queda para siempre en esa parte y no sale nunca. Tienes que entender el juego como un bucle principal global en el que no existirán subbucles a menos que sea para iterar por elementos de listas de tamaño conocido o, al menos, limitado. Tu segunda intuición va por mejor lado: usa las properties como lo que son, variables miembro para tu objeto que contienen valores mantenibles (y modificables) a lo largo del funcionamiento del programa. |
|
|
|
|
|
#5 |
|
Miembro
Fecha de Ingreso: junio-2006
Mensajes: 49
|
Gracias por los consejos^^.
Me pondré a ver algún que otro juego a ver como van (al único que le eché un vistazo es al FPS_Template, y fue el que medió la idea del "property" :P) Aun así sigo teniendo el problema de como hacer referencia a un "property" desde el script de python XD...). Pero ya estoy maquinando alguna forma de hacerlo (a traves de un sensor de "property" y un actuador de "property" ^^) Si tengo más problemas os avisaré! Espero que cuando vuelva a decir algo sea para enseñaros el programa :P SALUDOS!
__________________
Que es la vida, un frenesí, que es la vida una ilusión, un sueño, una ficción. Que el mayor Bien es pequeño... Toda la realidad es sueño y los sueños, sueños son |
|
|
|
|
|
#6 |
|
Ready? Go!
Fecha de Ingreso: junio-2003
Ubicación: Castellón
Mensajes: 11,213
|
Desde python puedes acceder a los objetos de la escena, y una vez accedes a los objetos puedes acceder a sus propiedades. No recuerdo exactamente cómo se hace, pero por poderse, se puede
Mira, mi trabajo de fin de carrera de informática consistió en un pequeño paseo virtual interactivo de mi universidad. Puedes echarle un ojo al resultado (bastante precario visualmente, pero no dio tiempo para pulir el grafismo) en No me toques los webs que me la pones dura Te lo descargas y le echas un vistazo a los scripts a los que se llaman y qué objetos los llama. Creo que en alguno de ellos hacía lo de modificar propiedades de un objeto (probablemente un empty o el suelo de la escena). Un saludo. |
|
|
|
|
|
#7 |
|
12 meses, 12 pagas
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 4,918
|
Bardo, el sensor Property es uno de los pocos que necesita un script para ser usado al 100%. Puedes gestionar una propiedad con get/setProperty(), get/setType() y get/setValue().
Código:
import GameLogic as G
c=G.getCurrentController()
s=c.getSensor('nombre_de_propiedad')
propiedad=s.getProperty()
contenido=s.getValue()
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan. Mateo 8, 9-10 |
|
|
|
|
|
#8 |
|
Miembro
Fecha de Ingreso: junio-2006
Mensajes: 49
|
...
Supongo que no puedes llamar directamente a la propiedad, ¿no?. Lo que se hace es llamarla a través de un "Property Sensor", ¿no?, si me equivoco, por favor corrijanme... SALUDOS!
__________________
Que es la vida, un frenesí, que es la vida una ilusión, un sueño, una ficción. Que el mayor Bien es pequeño... Toda la realidad es sueño y los sueños, sueños son Última edición por Bardo_Slaine fecha: 26 jun 2008 a las 03:05. |
|
|
|
|
|
#9 |
|
12 meses, 12 pagas
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 4,918
|
Como dice Mars, cuando añades una propiedad a un objeto, esta se convierte internamente en un método de Python: puedes llamarlo con:
p = objeto.nombre_de_propiedad
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan. Mateo 8, 9-10 |
|
|
|
|
|
#10 |
|
Miembro
Fecha de Ingreso: junio-2006
Mensajes: 49
|
Código:
import GameLogic as G
c=G.getCurrentController()
s=c.getSensor('nombre_de_propiedad')
propiedad=s.getProperty()
contenido=s.getValue()
Es que esas funciones (en la base de datos), están en la seccion del Property sensor: SALUDOS!
__________________
Que es la vida, un frenesí, que es la vida una ilusión, un sueño, una ficción. Que el mayor Bien es pequeño... Toda la realidad es sueño y los sueños, sueños son Última edición por Bardo_Slaine fecha: 26 jun 2008 a las 12:32. |
|
|
|
|
|
#11 |
|
12 meses, 12 pagas
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 4,918
|
Hombre, con ese script no estoy modificando nada: sólo asigno a unas variables el contenido de otras que me ofrece el sensor. Si usara "set" sí estaría cambiando valores del sensor. Pero NO la propiedad, para eso se usa lo que he dicho en el anterior mensaje
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan. Mateo 8, 9-10 |
|
|
|
|
|
#12 |
|
Miembro
Fecha de Ingreso: junio-2006
Mensajes: 49
|
OK OK, es que al principio crei que modificab la propiedad, pero cuando estuve mirando en la referencia ya me di cuenta^^
Gracias!
__________________
Que es la vida, un frenesí, que es la vida una ilusión, un sueño, una ficción. Que el mayor Bien es pequeño... Toda la realidad es sueño y los sueños, sueños son |
|
|
|
![]() |
| Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes) | |
| Herramientas | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Problema con BevOb en blender | DraDo | Modelado | 3 | 15 may 2008 08:58 |
| Manual de Blender - PARTE X - CUERPOS BLANDOS Y FLUIDOS | 3dpoder | Blender | 0 | 12 mar 2008 09:14 |
| Blender script: Exportador de cámara a After Effects y Shake | SHAZAM | Script | 0 | 11 ene 2008 03:12 |
| Problema con Kerkythea Blender exporter | vleda | Render, Iluminación y Cámaras | 2 | 18 mar 2007 06:22 |
| Nuevo Script para... mejor que lo probeis! (Blender) | Caronte | Plugins | 11 | 21 ago 2005 16:27 |
|
|