Sei sulla pagina 1di 3

Primeros pasos con Blitz3D.

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.

Pueden bajar una versión de prueba de aquí:


http://www.blitzbasic.com/Products/_index_.php

El programa ya viene con varios ejemplos.

Creación de una escena:

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. 

Abran el Blitz3D y creen un nuevo documento.

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”

Graphics3D 640, 480, 16, 2

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.

While KeyDown(1) = False


RenderWorld()
Flip()
Wend

El bucle While / Wend repite lo que hay en su interior si es que su cumple con la
condición.

La función KeyDown(tecla) nos devuelve si se esta apretando actualmente la tecla


correspondiente (en este caso 1 = ESC)

Y los comandos mas importantes.

RenderWorld(). Dibuja todos los objetos 3d en el buffer. Todas las acciones,


movimientos, rotaciones, etc, deben hacerce antes del RenderWorld() para luego ser
dibujadas.
Flip(). Vuelca el Buffer en la pantalla para que lo podamos ver.

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.

En resumen nos ha quedado el código siguiente:

Graphics3D 640, 480, 16, 2


SetBuffer BackBuffer()

Cam = CreateCamera()
Luz = CreateLight()
Cubo = CreateCube()

MoveEntity Cam, 0, 0, -5

While Keydown(1) = False


TurnEntity Cubo, 1, 2, 0
RenderWorld()
Flip()
Wend

Para ejecutar el programa pulsamos F5 y………………

El próximo tutorial será un poco mas práctico y divertido, y empezaremos a hacer


nuestro primer juego en 3D.

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!!!

Cualquier duda pueden dirigirse a los foros de VB-Mundo en la sección de videojuegos.


http://www.vb-mundo.com/

Potrebbero piacerti anche