Resultados 1 al 5 de 5

Tema: Estructura de programación Blitz3d

  1. #1
    Fecha de ingreso
    Oct 2016
    Mensajes
    227

    Estructura de programación blitz3d

    Buenas tardes.

    Estoy realizando un videojuego en Blitz3D y al principio empecé a programarlo todo dentro de la misma función y así me funcionaba perfectamente. El problema está cuando el código se va alargando y complicando y necesito dividirlo en funciones diferentes como el personaje, el escenario, el enemigo, para poder hacer llamada a cada una independientemente y así poder ir multiplicando el número de enemigos, etc.

    Primero creo las funciones con su código ordenadamente y me aparecen dentro de la lista de funciones que he creado, pero al hacer llamada a todas ellas desde una principal solo se ve en pantalla la primera de todas ellas. Supongo que porque no se estructurar el código bien y no sé dónde colocar Renderworld, Updateworld y Flip.
    ¿Todas las funciones deben llevar esos tres procesos o solo una principal? ¿Cómo hago llamada a las funciones para qué aparezcan todas?
    Lo estoy haciendo así:
    Graphics3D 1024,600,32,1
    SetBuffer BackBuffer() ;
    Función1() Función2()
    End.

    Function Función1()
    Mundo1=LoadMesh(.)
    Textura1=LoadTexture(.) EntityTexture Mundo1,Textura1
    PositionEntity Mundo1,0,0,0
    Camara=CreateCamera()
    PositionEntity Camara,0,0,0
    While Not KeyDown(1)
    UpdateWorld
    RenderWorld
    Flip
    Wend
    End
    End Function.

    Function Función2()
    Personaje=LoadMesh(.)
    Textura2=LoadTexture(.)
    EntityTexture Personaje,Textura2
    PositionEntity Personaje,0,0,0
    While Not KeyDown(1)
    UpdateWorld
    RenderWorld
    Flip
    Wend
    End
    End Function.

    Solo me aparece la primera función y nada más. Un saludo.
    Última edición por Jhonatan00_00; 24-10-2016 a las 18:16 Razón: Falta información

  2. #2
    Fecha de ingreso
    Oct 2016
    Mensajes
    227

    Estructura de programación blitz3d

    ¿En serio nadie sabe qué es lo que estoy haciendo mal? Llevo toda la tarde intentando solucionar el problema para seguir avanzando y no lo consigo, me he quedado estancado.

    He estado haciendo pruebas y es como si al crear una función y finalizarla Blitz3D entendiese que termina el programa ahí y no sigue leyendo si hay nada más, ni ejecuta más procesos ni nada, pero no sé porque.

  3. #3
    Fecha de ingreso
    Jul 2015
    Mensajes
    465

    Estructura de programación blitz3d

    Buenas no tengo ni idea de Blitz, pero mirando el código tiene parecido a Python, si en Python llamas a las funciones como tu lo haces en:
    Graphics3D 1024,600,32,1
    SetBuffer BackBuffer() ;
    Función1() Función2()
    End.

    Funciones Funcion1() Funcion2(), Python solo leería la primera, para qué lea las dos debes de llamarlas cada una en una línea:
    Graphics3D 1024,600,32,1
    SetBuffer BackBuffer() ;
    Función1()
    Función2()
    End
    Esto sería en Python, pero por probar no pierdes nada ya qué nadie dice nada al respecto. Un saludo.

  4. #4
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,651

    Estructura de programación blitz3d

    Cita Iniciado por Jhonatan00_00 Ver mensaje
    ¿En serio nadie sabe que es lo que estoy haciendo mal? Llevo toda la tarde intentando solucionar el problema para seguir avanzando y no lo consigo, me he quedado estancado.

    He estado haciendo pruebas y es como si al crear una función y finalizarla Blitz3D entendiese que termina el programa ahí y no sigue leyendo si hay nada más, ni ejecuta más procesos ni nada, pero no sé por qué.
    Llámame pesado, pero preguntar algo en un foro que no es específico de Blitz3D, varios años después del bom(que nunca fue tal) del programa, pues yo no esperaría respuestas. Éste es uno de los problemas que te comenté: puedes aprender de lo que ya hay escrito, pero en el momento en que te encuentres con un problema para él que no encuentres respuesta.

  5. #5
    Fecha de ingreso
    Oct 2016
    Mensajes
    227

    Estructura de programación blitz3d

    Buenos días. Muchas gracias por responder Juani. En realidad, llamo a las dos funciones una en cada línea, solo que al escribir el código de muestra para que lo vierais lo he amontonado así sin darme cuenta. He hecho llamada a las funciones en la misma línea por curiosidad para ver qué hace Blitz3D y me dice Expecting expression, así que, veo que en eso tanto Python como Blitz3D son iguales y hay que hacer llamada a las funciones en líneas diferentes. Solo ha sido un error al poner el ejemplo, pero no lo hacía así en el programa original.

    Ayer noche descubrí cual era el problema y es que estoy muy familiarizado a programar en Div2, un engine con el que hacía videojuegos hace muchos años y que usaba el lenguaje C, desde el cual yo hacía llamada a las funciones como lo muestro en el ejemplo y funcionaba, pero Blitz3D no es exactamente igual. Voy a explicar cuál es su estructura de programación:
    - Iniciamos el programa indicando un nombre, la resolución de pantalla y muy importante, creando las variables globales que vamos a controlar después desde la función principal, ejemplo: global cámara, global posición x.
    - Creamos una función principal desde la cual haremos llamada a todas las demás y la única qué va a contener en su código un bucle repetitivo porque Blitz3D entiende que el programa es ese bucle repetitivo y que vas a meter todo ahí y hasta qué no termina ese bucle no sigue haciendo nada más. Dentro de este bucle es donde meteremos Updateworld, Renderworld, wend y flip, para qué el programa actualice, renderice y muestre todo el mundo y por eso creamos las variables globales, para poder controlarlas dentro de este bucle principal sin haber creado la entidad desde el si no desde las funciones secundarias.
    - Creamos el resto de funciones las cuales serán secundarias y que servirán más que para otra cosa, para cargar imágenes, modelos, animaciones, dar valores, crear luces, entidades de cualquier tipo o dar colocación a los objetos en el espacio, pero que no tendrán bucles repetitivos, tan solo valores fijos que serán controlados desde la función principal por medio de variables globales.
    - Se pueden crear tantas funciones principales como queramos, pero debemos poner condiciones para cerrar una y llamar a la siguiente que a su vez hará llamada a todas sus funciones secundarias. No podremos tener en ejecución dos funciones principales con sus bucles repetitivos porque solo ejecutará la primera de ellas como me pasaba a mí.

    IkerClon ya estoy sufriendo las consecuencias de usar un engine que lleva tiempo casi sin uso y por eso me estoy retrasando bastante más, porque tengo que encontrar las soluciones por mi mismo y no puedo entrar a Google y encontrar la solución, una |@#~euros, pero es que, programo desde un netbok con Windows XP y Unity no es compatible con Windows XP, así que, es lo que hay y tengo que desarrollarlo en Blitz3D, que también es verdad que, aunque sea más complicado a la larga cuando lo dominas es más gratificante y lo puedes hacer todo en el exactamente igual que en el mejor engine, solo que ha base de programación pura y dura y tienes que saber. Un saludo.

Temas similares

  1. 3dsMax Colapso estructura
    Por kauce en el foro Animación y Rigging
    Respuestas: 0
    : 25-06-2009, 08:52
  2. Estructura en espirales en Cad
    Por FRACTO en el foro Programas de Diseño 3D y CAD
    Respuestas: 7
    : 19-09-2008, 10:13
  3. Estructura de un PC
    Por sila en el foro Hardware
    Respuestas: 1
    : 17-06-2008, 20:14
  4. Creación de una estructura en 3-d
    Por Tio_Sam en el foro Programas de Diseño 3D y CAD
    Respuestas: 1
    : 04-01-2008, 17:08
  5. 3dsMax Estructura para un ala
    Por AeroMartin en el foro Animación y Rigging
    Respuestas: 3
    : 15-08-2006, 17:11