¿Para qué sirven las macros?
¿Qué son las macros en Game Maker Studio? Las macros son valores constantes, es decir, que no cambian en todo el rato que dura el juego. Es como una variable que no se puede cambiar su valor. Ese valor puede ser cualquier tipo básico de los que ya hemos comentado, excepto las arrays, ya que éstas pueden variar en su tamaño.
Como se acceden a las macros
El alcance de una macro es global, es decir, se definen a nivel de proyecto, no de objeto o script, y se puede acceder a ella en cualquier momento y lugar (evento de un objeto, script, etc.)
Hay una serie de constantes o macros que vienen definidas en el sistema, por tanto, Game Maker nos proporciona para su uso. Así entenderemos mejor porque se definen esas constantes.
Ejemplos de macros del sistema
Por ejemplo, las macros de colores son las que empiezan por c_. A modo de resumen, podemos decir que un color tiene un número asociado. Por ejemplo, el color negro es el número 0, el color rojo es el número 255 y un color personalizado, como un azul, puede ser el 16711680. Obviamente, no nos vamos a acordar de todos estos números, así que Game Maker nos proporciona 6 colores básicos para poder usar, c_white, c_black, c_red… Tenéis en el enlace un ejemplo de los colores de sistema de Game Maker. Si por ejemplo estamos usando un color propio nuestro, podemos crearnos la macro c_rojo y así usarla en nuestro juego.
También existen otras macros que solemos utilizar en nuestros juegos. Son las macros relacionadas con el teclado. Éstas empiezan con el prefijo vk_. ¿Cuál es el motivo? Ya comentamos que cada tecla está relacionado con un número. Este número es el equivalente en su tabla ASCII. Podemos usar las macros de vk_tab, vk_delete o vk_pause para las teclas especiales, aunque también tenemos para el teclado numérico. Tenéis un listado en la ayuda online de Game Maker Para las letras, podemos usar la función ord()
, por ejemplo ord(‘A’)
.
Como se definen las macros
Para definir una macro, podemos ir como siempre al menú Resources – Define Macros. Se abrirá la siguiente ventana:
En la parte principal tenemos una lista de todas las macros que hemos definido. Al principio nos la encontraremos vacía, así que tenemos una serie de botones para gestionarla. Con el botón Add podemos añadir una macro nueva, definiendo un nombre y su valor. Como siempre, el nombre tiene que ser único para todo el proyecto. Lo habitual es usar el prefijo c_, cuidado que no coincida con los colores del sistema, o usar las mayúsculas. Game Maker Studio distingue mayúsculas y minúsculas, así que una constante llamada GRID será diferente de una variable llamada grid.
El valor que le demos a esta macro puede ser un número, un texto o una expresión/función. Las macros se ejecutan al inicio del juego, así que si usamos una función que depende del juego, no será correcta. Por ejemplo, existe una expresión para saber el número de instancias, instance_count. Si quisiéramos asignarla a una macro, su valor no sería nunca correcto.
Cuando tengamos dos macros añadidas, se activarán varios botones. Podemos añadir una macro en medio de otras dos con el botón Insert, moverlas con los botones Up y Down y ordenarlas con el botón Sort. También podemos borrar una macro con el botón Delete y borrar todas las que hemos creado con Clear.
También tenemos otros dos botones interesantes, para añadir y guardar macros en un fichero. Si ya tenemos macros definidas de otros proyectos, podemos guardarlas con el botón Save y recuperarlas con el botón Load. Si ya tenemos macros definidas se añadirán al final. El fichero que se ha generado es un fichero de texto sencillo, que se puede abrir en programas como el bloc de notas o Notepad++. Os puede interesar editar ese fichero para luego cargarlo, ya que el formato es muy sencillo. Cada macro se compone de una línea, donde vemos algo parecido a NAME = VALUE.
Usar expresiones en macros
Ya hemos dicho que las expresiones que podemos usar están limitadas, pero existen una serie de funciones que pueden ser útiles. Veamos un par de ejemplos.
Existe una función que nos devuelve un número aleatorio. Esta función se llama random()
. Por lo tanto, random(100)
nos devolvería un número de 0 a 100. Imaginemos que queremos usar ese número aleatorio para todo el juego, pues podemos añadir una macro así
MY_RANDOM = random(100)
Podemos usar también expresiones con constantes por ejemplo
HI = ‘HELLO ’
WORLD = ‘WORLD’
SALUTE = HI + WORLD
En este caso, estamos sumando dos constantes para formar una frase.
Que vemos en el árbol de recursos
Como curiosidad final, si nos fijamos en el árbol de recursos, en la carpeta Macros tenemos dos opciones: All configurations y Default. Sin entrar en detalle en las configuraciones de Game Maker Studio, comentamos brevemente que podíamos tener varias configuraciones de nuestro proyecto. Por ejemplo, una configuración para nuestro juego Free y otra configuración para nuestro juego Premium, con recursos diferentes (sprites, objetos, etc.). Si queremos que nuestras macros se vean en todas las configuraciones, debemos crearlas en Todas las configuraciones. Pero si queremos macros personalizadas en cada configuración, podemos añadirlas en cada una de ellas, y así serán independientes.