Permite cambiar la imagen de un 'overlay' por otra imagen cargada del disco.
Sintaxis del comando:
ACCI CAMBIAR_IMAGEN_OVERLAY
número_de_imagen fichero_gráfico
número_de_imagen:
Número de imagen (entre 1 y 64).
Este número de imagen u 'overlay' que será sustituida por la nueva imagen cargada del disco.
Este número de imagen también será el que deberemos utilizar en los comandos OVERLAY1 y OVERLAY0 para hacerla
aparecer o desaparecer de la pantalla.
fichero_gráfico:
Fichero gráfico conteniendo la imagen o textura que sustituirá a la que ya tenga asignado este número de 'overlay'.
Puedes utilizar ficheros gráficos en formato .BMP o .JPG
El fichero gráfico debe existir en la carpeta 'bmp / texturas'
Puedes usar este comando para cargar y mostrar imágenes al jugador de forma dinámica durante el transcurso del juego en función
de las acciones del jugador. Incluso usando siempre el mismo número de 'overlay' para esta función, por lo que no será necesario que
tengas pre-cargados múltiples 'overlays' con todas las imágenes que quieres presentar en pantalla.
Cada imagen que cargues con este comando ocupará su memoria correspondiente hasta que sea sustituida por otra nueva, por lo
que puedes cargar multitud de imágenes sin sobrecargar la memoria del programa.
Atención: El uso de este comando puede causar una pausa de unos pocos milisegundos en
el motor 3D, por lo que no es conveniente usarlo de manera intensiva.
Ejemplo 1:
Cargar y mostrar (durante 5 segundos) en la esquina inferior izquierda de la pantalla la imagen de un reactor nuclear que el jugador debe destruir:
ACCI CAMBIAR_IMAGEN_OVERLAY 7 reactor.jpg
ACCI OVERLAY1 7 5 10 -400 100 0 255 255 255 255
Ejemplo 2:
Cargar y mostrar a pantalla completa los planos de un centro comercial cuando el jugador pulse la tecla 'U' en cualquier momento.
Tener en cuenta que el centro comercial dispone de planta baja y tres plantas más, pero no se dispone del plano de la planta baja.
Se debe mostrar el plano de la planta en que esté situado el jugador en ese momento. Detener toda la acción del juego mientras el
jugador esté visionado estos planos.
Para saber en qué planta se encuentra el jugador nos basaremos en la altura que se encuentre en ese momento el jugador consultando
la variable del sistema POSICION_Y_JUGADOR, asumiendo que:
Se encuentra en la planta baja si el valor de POSICION_Y_JUGADOR está entre 0 y 300.
Se encuentra en la primera planta con valores entre 301 y 600.
Se encuentra en la segunda planta con valores entre 601 y 900.
Se encuentra en la tercera planta con valores entre 901 y 1200.
Para este ejemplo necesitaremos tres ficheros gráficos con los siguientes nombres que representen los planos de las tres plantas
del centro comercial: plano1.jpg, plano2.jpg y plano3.jpg
También debemos crear una entidad 'TeclaComandos' para asignar la
tecla 'U' a un fichero de comandos, por ejemplo 'mapa_centro.ini'. Este sería el contenido de ese fichero para realizar la
presentación de los planos:
; Primero controlamos si ya se esta mostrando el plano
; En ese caso lo ocultamos y no hacemos nada mas
; Ya que el jugador podra usar la misma tecla para
; mostrar y ocultar el plano
IF COND MOSTRANDO_PLANO=1
ACCI OVERLAY0 12
ACCI PONE MOSTRANDO_PLANO=0
ELSE
; Si no se esta mostrando el plano, procedemos a mostrarlo
ACCI TEXT Planos centro comercial
; Se comprueban los tres tramos de alturas para las tres plantas
IF COND POSICION_Y_JUGADOR>300 COND POSICION_Y_JUGADOR<601
ACCI PONE NPLANTA=1
ENDIF
IF COND POSICION_Y_JUGADOR>600 COND POSICION_Y_JUGADOR<901
ACCI PONE NPLANTA=2
ENDIF
IF COND POSICION_Y_JUGADOR>900 COND POSICION_Y_JUGADOR<1201
ACCI PONE NPLANTA=3
ENDIF
; Mostramos el plano si el jugador no esta en la planta baja
IF COND NPLANTA!0
ACCI PONE MOSTRANDO_PLANO=1
; Se construye el nombre del fichero usando la variable NPLANTA y la extension final .jpg
ACCI OPEC NOMBRE_FICHERO %NPLANTA%
ACCI OPEC NOMBRE_FICHERO .jpg
; Cargar la imagen de la planta usando la variable NOMBRE_FICHERO
ACCI CAMBIAR_IMAGEN_OVERLAY 12 %NOMBRE_FICHERO%
; Hacer visible el plano ('overlay' 12) a pantalla completa (escala 1000)
ACCI OVERLAY1 12 0 20 10 1000 0 255 255 255 220
ELSE
ACCI TEXT No esta disponible el plano de la planta baja
ENDIF
ENDIF
Para detener a acción del juego mientras el jugador está consultando el plano deberás añadir estas dos líneas después de la
línea que muestra el plano, es decir, después del OVERLAY1:
ACCI ESTABLECER_VALOR_SISTEMA bots_activos no
ACCI ESTABLECER_VALOR_SISTEMA models_activos no
... pero también deberás añadir las siguientes líneas después del OVERLAY0 para reanudar la acción cuando el jugador oculte
el plano:
ACCI ESTABLECER_VALOR_SISTEMA bots_activos si
ACCI ESTABLECER_VALOR_SISTEMA models_activos si
Si en esos planos quieres representar la posición del jugador deberás trasladar las coordenadas X y Z del jugador, que encontrarás
en las variables del sistema POSICION_X_JUGADOR y POSICION_Z_JUGADOR a coordenadas X e Y de
la pantalla.
Para esto también deberás tener en cuenta la escala de tu plano y la resolución de pantalla.
Ejemplo 3:
Cargar y mostrar a pantalla completa el plano de un desierto con un pequeño indicador sobre este plano que indique una zona
con un pozo de agua para que el jugador pueda beber.
Este plano debe mostrarse correctamente en cualquier resolución de pantalla.
Mostrar el plano pero no el indicador si el jugador no dispone de la información de la ubicación del pozo. Usar para esta condición
la variable INFO_POZO que en otro punto del juego se cargará con el valor 1 cuando un personaje informe al jugador sobre la ubicación del pozo:
ACCI TEXT Mapa overlay
; La posicion del indicador expresada en porcentajes
;(36% del ancho de la pantalla y 60% del alto de la pantalla)
ACCI PONE POSX_IND=36
ACCI PONE POSY_IND=60
; Calcular su posición en coordenadas X Y según su posicion expresada en
; porcentajes y la resolucion actual de la pantalla
ACCI OPE* POSX_IND %ANCHO_RESOLUCION%
ACCI OPE* POSY_IND %ALTO_RESOLUCION%
ACCI OPE/ POSX_IND 100
ACCI OPE/ POSY_IND 100
; Cargar la imagen del mapa como 'overlay' 9
ACCI CAMBIAR_IMAGEN_OVERLAY 9 mapa_desierto.jpg
; Hacer visible el mapa ('overlay' 9) a pantalla completa (escala 1000) durante 7 segundos
ACCI OVERLAY1 9 7 20 10 1000 0 255 255 255 220
IF COND INFO_POZO=1
; Superponer el indicador ('overlay' 10) usando las coordenadas X Y calculadas anteriormente
ACCI OVERLAY1 10 7 %POSX_IND% %POSY_IND% 100 0 255 255 255 250
ELSE
ACCI TEXT No dispones de informacion sobre el pozo
ENDIF
Funcionamiento del comando en el modo de juego online