int object3d=0; // Código del objeto 3d
Esta variable predefinida es PUBLIC, lo que significa que cada proceso tendrá su propio valor en su variable object3d.
Normalmente, la mayoría de procesos se corresponden con un objeto 3D gráfico visualizado en pantalla que se situará en las coordenadas indicadas en las variables locales x, y, z. Se debe definir qué gráfico es el correspondiente a dicho proceso asignando un código de objeto a la variable local object3d.
Por defecto, esta variable valdrá 0 lo que implica que no se visualizará ningún objeto para este proceso.
Nota: Un mismo objeto 3D puede ser utilizado por muchos procesos a la vez en un programa.
Normalmente se utiliza una variable global para guardar este código de objeto 3D y después se asigna ésta a la variable object3d.
Ejemplo de utilización de object3d:
int objeto3d; MAIN_PROGRAM_CDIV PRIVATE int fichero; BEGIN_PROGRAM // Definimos el modo gráfico set_gfx(GFX_AUTODETECT_WINDOWED); set_depth(16); // Definimos la resolución set_mode(m640x480); // Subimos la altura de la camara x = 0; y = -100; z = -1000; write(0,0, 0,0, "Pulse 'up' o 'down' para avanzar o retroceder"); write(0,0,10,0, "Pulse 'left' o 'right' gira la camara izquierda o derecha"); fichero = load_fpg("../help.fpg"); objeto3d = create_bitmap_3d( fichero, 10 ); object3d = objeto3d; start_3d(0, fichero, 9, 10000, 10000, 0, this); m3d[0].distance.z = 500; // Nos movemos en el espacio 3D LOOP{ if( key(_left) ) angle3d.y += 5000; if( key(_right)) angle3d.y -= 5000; if( key(_up)) advance3d(5); if( key(_down)) advance3d(-5); if( key(_enter)) stop_3d(0); FRAME; } END_PROGRAM
Si bien en el ejemplo anterior se podría haber prescindido de la variable global objecto3d y haber asignado directamente el código devuelto por la función create_bitmap_3d() a la variable object3d con la siguiente sentencia:
object3d = create_bitmap_3d( fichero, 10 );
el código de objeto3d que devuelve esta función son simplemente números enteros a partir de 1.
Existen más variables locales relacionadas con el objeto3d de un proceso, las principales son las siguientes:
object3d - Código del objeto 3D
x, y, z - Coordenadas del objeto 3D
angle3d - Ángulo del objeto 3D
size - Tamaño del objeto 3D
flags - Transparencias y Fundidos
region - Ventana de visualización
Ver: Datos locales