Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Nota: Para este tutorial se recomiendan por lo menos algunos conocimientos básicos de
programación como lo que son funciones, variables, etc.
No es la intención en este momento hacer una comparativa con otros programas, pero a
lo que la experiencia me ha llevado tras probar muchos, pero muchos otros lenguajes, es
que el blitz es realmente un lenguaje excelente y podemos hacer casi todo lo que
queramos con un poco de imaginación y paciencia.
Antes que nada, empezar un programa en 3D, es como empezar en el vacío total….no
hay luz, no hay aire ni vida ni nada….nosotros crearemos nuestro propio mundo a
nuestro antojo, crearemos nuestras propias leyes y le daremos vida.
Para empezar explicaremos algunos comandos que tendremos que usar en todos
nuestros programas. No se preocupen si no los entienden con profundidad en este
momento…funcionan de todas formas.
Lo primero que haremos es inicializar los gráficos (o en otras palabras, darle un tamaño
a la ventana de nuestro programa para que la podamos ver). Para esto usaremos como
nuestra primera línea de código el comando:
“Graphics3D Ancho, Alto, Profundidad, Modo”
Los parámetros Ancho y Alto se miden en pixeles y son el ancho y alto de la ventana. La profundidad, es,
por decirlo así, la calidad de los colores (16 o 32 Bits normalmente) y el Modo, indica si se ejecuta en
modo ventana o pantalla completa. Vamos a usar esta configuración que por lo general se adapta a la
mayoría de los monitores.
SetBuffer BackBuffer()
El Buffer, es el lugar donde se realizan todas las operaciones de dibujo para luego
volcarlas en la pantalla (es como hacer un dibujo en una hoja de papel, y cuando lo
terminamos se lo mostramos a la gente para que lo vea), Esto se repite decenas de veces
por segundo. Hay otros tipos de buffers que los veremos mas adelante.
Lo siguiente que haremos será crear una cámara para que podamos ver todo lo que
sucede en nuestro mundo…estos serán nuestros ojos. Para esto crearemos una variable
que se llamará “Cam”, y usaremos la función “CreateCamera()”
Cam = CreateCamera()
De ahora en adelante cada vez que queramos manipular la cámara (moverla, rotarla,
etc.), nos referiremos a ella con la variable “Cam”
Obviamente no tiene sentido ver en la oscuridad, así que crearemos una luz; y usaremos
una fórmula muy parecida a la anterior.
Luz = CreateLight()
Igual que antes, desde ahora nos referiremos a la luz con la variable “Luz”. También
podremos moverla, rotarla, cambiarle el color, etc., etc.
Y como es lógico, no sirve de nada que tengamos luz, si no hay lo que ver….asi que…
Cubo = CreateCube()
Por norma…cada vez que creamos algo (cámara, luz, cubos, los que sea) , se crearán en
el punto x=0, y=0, z=0, que es el punto inicial. Como la cámara y el cubo están
exactamente en el mismo lugar, no lo podremos ver, así que moveremos un poco la
cámara hacia atrás para alejarnos un poco del cubo. Y usaremos lo siguiente:
MoveEntity Cam, 0, 0, -5
Aquí hay dos cosas que explicar. La primera: Todos los objetos que tengamos en el
escenario son “Entidades” y casi todas las funciones y comandos se referirán a ellos
como entidades. Podremos usar MoveEntity para mover cámaras, luces, personajes,
enemigos…etc..etc….
La segunda: Como estamos trabajando en un espacio de 3 dimensiones, siempre que
manipulemos alguna entidad lo tendremos que hacer en las 3 direcciones (x,y,z).
Y para finalizar crearemos un bucle principal donde ocurrirán todas las acciones de
nuestro programa y a continuación lo explicaremos.
El bucle While / Wend repite lo que hay en su interior si es que su cumple con la
condición.
Y para hacerlo un poco mas divertido y no solo ver un cubo en la pantalla pondremos
dentro de nuestro bucle el comando:
TurnEntity Cubo, 1, 2, 0
Este comando gira a la entidad tantas unidades (x, y, z) desde la última posición.
Cam = CreateCamera()
Luz = CreateLight()
Cubo = CreateCube()
MoveEntity Cam, 0, 0, -5
Pero como en todos los lenguajes, es muy conveniente que nos pasemos por su ayuda de
vez en cuando (que no es nada complicada ni extensa y nos ahorrará muchísimos
dolores de cabeza)….lo dice la experiencia!!!.
Hasta la próxima!!!