Vous êtes sur la page 1sur 205

La guia de game Maker studio

http:/www.aprendegamemaker.com/
David Lpez Marzo Octubre 2015

www.aprendegamemaker.com

Contenido
Empezamos................................................................................................................................................ 9
Que encontrars..................................................................................................................................... 9
Suscrbete para recibir todas las novedades y ayudar al blog ........................................................................ 9
Qu es Game Maker Studio ........................................................................................................................ 10
Que nos ofrece Game Maker Studio ...................................................................................................... 10
Versiones de Game Maker Studio.......................................................................................................... 11
Conclusin final .................................................................................................................................... 12
Requisitos de Game Maker Studio ................................................................................................................ 13
Requisitos de Game Maker Studio: uso de la aplicacin ............................................................................. 13
Requisitos de Game Maker para Android, HTML5, Tizen ........................................................................... 13
Requisitos de Game Maker para Mac OS X y juegos en iOS ........................................................................ 14
Requisitos de Game Maker para Ubuntu Linux ......................................................................................... 14
Requisitos de Game Maker para videoconsolas ........................................................................................ 14
Gua de cmo empezar con Game Maker Studio............................................................................................. 16
Antes de empezar: otras versiones de Game Maker ................................................................................. 16
Descargar e instalar Game Maker Studio ................................................................................................. 17
Activacin de Game Maker Studio .......................................................................................................... 17
Qu opcin elegir: canal Beta o canal Estable ........................................................................................... 17
La primera pantalla: un vistazo al interface de Game Maker ....................................................................... 18
Pestaa Welcome: Bienvenido a Game Maker Studio ........................................................................ 18
Pestaa Open: Abrir un proyecto ...................................................................................................... 19
Pestaa New: Crear un nuevo proyecto............................................................................................. 19
Pestaa Import: Importar nuestro proyecto....................................................................................... 19
Pestaa Release notes: Notas de la versin ........................................................................................ 19
Pestaa Demos: Proyectos de ejemplo .............................................................................................. 19
Pestaa Tutorials: Tutoriales para aprender ....................................................................................... 20
Pestaa News: Noticias .................................................................................................................... 20
Pestaa License: Licencias................................................................................................................. 20
Paso Final............................................................................................................................................. 20
Qu es Game Maker Studio: Early Access...................................................................................................... 21
Beta channel vs Stable Channel: elegir entre canal Beta o canal Estable de Game Maker Studio ................. 21
2

www.aprendegamemaker.com
Puedo actualizar en cualquier momento? Y cambiar de canal? ............................................................. 21
Entonces, qu es el Early Access de Game Maker (Acceso Temprano)? ................................................... 22
Como funciona Game Maker Studio.............................................................................................................. 24
Antes de nada: lpiz y papel ................................................................................................................... 24
La idea global: como funciona Game Maker Studio ................................................................................... 24
Cmo funcionan los objetos ................................................................................................................... 25
Interaccin de objetos con habitaciones .................................................................................................. 26
Final y ms recursos .............................................................................................................................. 27
La interfaz grfica de Game Maker Studio ..................................................................................................... 29
El rbol de recursos de Game Maker Studio............................................................................................ 29
La barra de herramientas ...................................................................................................................... 30
Compilacin de destino ........................................................................................................................ 31
Configuraciones y espacio de trabajo (workshop).................................................................................... 32
El men principal.................................................................................................................................. 32
Personalizar Preferencias en Game Maker Studio........................................................................................... 38
Pestaa General de Preferencias ........................................................................................................... 38
Pestaa Formulario de Preferencias....................................................................................................... 40
Formulario de sprite ........................................................................................................................ 41
Formulario de objetos ..................................................................................................................... 41
Formulario de habitaciones/rooms .................................................................................................. 42
General ........................................................................................................................................... 42
Pestaa Scripts y cdigo de Preferencias ................................................................................................ 42
Pestaa Editores de Preferencias ........................................................................................................... 44
Pestaa Servidor Web de Preferencias ................................................................................................... 45
Una introduccin a los sprites en Game Maker Studio....................................................................................... 48
Aadir sprites con Game Maker Studio.................................................................................................... 48
Edicin de mscaras de sprites: como personalizarlas en Game Maker Studio .................................................... 53
Seccin Imagen de la mscara ............................................................................................................... 53
Seccin General de la mscara .............................................................................................................. 54
Cuadro delimitador de la mscara ......................................................................................................... 54
Seccin Forma de la mscara ................................................................................................................ 55
Conclusin final: como elegimos una mscara de colisin ........................................................................ 55
Edicin de sprites en Game Maker Studio....................................................................................................... 56
Zona de previsualizacin del editor de sprites ........................................................................................... 56
3

www.aprendegamemaker.com
Barra de informacin del editor de sprites................................................................................................ 57
Barra de herramientas del editor de sprites.............................................................................................. 57
Men Archivo del editor de sprites ......................................................................................................... 59
Men Edicin del editor de sprites .......................................................................................................... 61
Men Transformar en el editor de sprites ................................................................................................ 63
Men Imagen del editor de sprites.......................................................................................................... 63
Men Animar del editor de sprites.......................................................................................................... 65
Editar imgenes del sprite en Game Maker Studio.......................................................................................... 67
Como es el editor de imgenes de Game Maker Studio ........................................................................... 67
Mens en la edicin de imgenes .......................................................................................................... 68
Barra de herramientas de la edicin de imgenes ................................................................................... 69
Herramientas de dibujo ........................................................................................................................ 69
Color y Herramientas de mezcla ............................................................................................................ 71
Imagen de previsualizacin ................................................................................................................... 71
Opciones de capa de cebolla: para calcar tus frames ............................................................................... 71
Herramientas de dibujo avanzada.......................................................................................................... 72
Pgina de repuesto.......................................................................................................................... 72
Paleta de colores personalizada ....................................................................................................... 72
Borrar color ..................................................................................................................................... 73
Fondos en Game Maker Studio .................................................................................................................... 74
Editar fondos en Game Maker Studio...................................................................................................... 75
Fondos como tiles ................................................................................................................................. 75
Uso de tiles en las rooms........................................................................................................................ 76
Conclusin ........................................................................................................................................... 76
Sonidos y msica en Game Maker Studio ....................................................................................................... 78
Grupos de audio ................................................................................................................................... 79
Compresin ......................................................................................................................................... 79
Streaming ............................................................................................................................................ 79
Calidad y volumen ................................................................................................................................ 79
Opciones de destino.............................................................................................................................. 79
Programa externo para editar sonido ...................................................................................................... 80
Introduccin a los objetos en Game Maker Studio............................................................................................ 81
Diferencia entre instancias y objetos ....................................................................................................... 81
Creando un objeto nuevo ...................................................................................................................... 81
4

www.aprendegamemaker.com
Propiedades de un objeto en Game Maker Studio .................................................................................... 82
Propiedad Visible ............................................................................................................................. 83
Propiedad Solid................................................................................................................................ 83
Propiedad Depth / Profundidad ........................................................................................................ 83
Objetos persistentes ........................................................................................................................ 84
Cosas a tener en cuenta con objetos persistentes............................................................................... 84
Herencia entre objetos: propiedad parent ......................................................................................... 85
Mscaras en objetos ........................................................................................................................ 86
Informacin del objeto ..................................................................................................................... 86
Usar Physics..................................................................................................................................... 86
Conclusin final .................................................................................................................................... 89
Cmo funciona la herencia de objetos ........................................................................................................... 90
Herencia para eventos de colisin........................................................................................................... 90
Otro ejemplo de herencia: nada de cdigo en los objetos hijos ................................................................... 91
Mezclar comportamientos: sobrescritura en eventos................................................................................ 91
Aprovechar los eventos del padre ........................................................................................................... 92
Mltiple herencia.................................................................................................................................. 92
Conclusin ........................................................................................................................................... 92
Cmo funcionan los eventos ........................................................................................................................ 94
Drag & Drop: arrastrar y soltar acciones ................................................................................................... 95
Ms opciones de los eventos.................................................................................................................. 95
Listado de eventos ..................................................................................................................................... 97
Evento Create ............................................................................................................................. 97
Evento Destroy ........................................................................................................................... 97
Eventos de alarma ...................................................................................................................... 97
Evento Step ................................................................................................................................ 98
Evento Colisin ........................................................................................................................... 98
Eventos de teclado ...................................................................................................................... 99

www.aprendegamemaker.com

Eventos de ratn....................................................................................................................... 100


Otros eventos ........................................................................................................................... 101
Evento de Dibujo....................................................................................................................... 103
Evento Asncrono ...................................................................................................................... 105
Otros eventos fuera de los objetos ........................................................................................................ 105
Orden de los eventos .......................................................................................................................... 106
Acciones................................................................................................................................................. 108
Como se utilizan las acciones en Game Maker Studio .............................................................................. 108
Detalle de una accin .......................................................................................................................... 108
Depurando acciones ........................................................................................................................... 109
Pestaa de acciones de movimiento ..................................................................................................... 110
Pestaa de acciones principales grupo 1.............................................................................................. 123
Pestaa de acciones principales grupo 2.............................................................................................. 132
Pestaa de acciones de control............................................................................................................. 140
Veamos un ejemplo ....................................................................................................................... 141
Las diferentes acciones................................................................................................................... 142
Pestaa de acciones de puntuacin ...................................................................................................... 153
Pestaa de acciones extra .................................................................................................................... 159
Pestaa de acciones de dibujo.............................................................................................................. 160
Usar expresiones y variables en las acciones de Game Maker Studio ................................................................. 171
Variables del sistema ........................................................................................................................... 172
Creacin de variables .......................................................................................................................... 172
Crear variables globales ....................................................................................................................... 173
Tipos de datos en las variables .............................................................................................................. 173
Expresiones en acciones ...................................................................................................................... 174
Funciones en Game Maker Studio ........................................................................................................ 174
Creando Rooms en nuestros juegos ............................................................................................................ 176
Barra de herramientas del editor de rooms............................................................................................ 177
Minimapa .......................................................................................................................................... 177
Barra de informacin........................................................................................................................... 178
Las pestaas del editor ........................................................................................................................ 178
6

www.aprendegamemaker.com
Ajustes .......................................................................................................................................... 178
Fondos .......................................................................................................................................... 179
Objetos ......................................................................................................................................... 180
Tiles o baldosas .............................................................................................................................. 181
Vistas ............................................................................................................................................ 183
Fsica ............................................................................................................................................. 184
Fuentes: como cambiar los textos en tu juego ............................................................................................... 185
El rango de la fuente............................................................................................................................ 185
Grupos de textura ............................................................................................................................... 187
Como se definen paths en un juego............................................................................................................. 188
Qu son las rutas o paths ..................................................................................................................... 188
El editor de paths ................................................................................................................................ 188
Informacin del path ........................................................................................................................... 189
Barra de herramientas......................................................................................................................... 189
Control de los puntos de la ruta ............................................................................................................ 190
Barra de informacin........................................................................................................................... 191
Asignar una ruta a un objeto ................................................................................................................ 191
Como usar TimeLines ............................................................................................................................... 193
Un par de ejemplos ............................................................................................................................. 193
Como crear un timeline ....................................................................................................................... 194
Botones de gestin en el timeline ......................................................................................................... 194
Acciones en el timeline ........................................................................................................................ 195
Para qu sirven las macros?...................................................................................................................... 196
Como se acceden a las macros ............................................................................................................. 196
Ejemplos de macros del sistema ........................................................................................................... 196
Como se definen las macros................................................................................................................. 196
Usar expresiones en macros................................................................................................................. 198
Que vemos en el rbol de recursos ....................................................................................................... 198
Scripts.................................................................................................................................................... 199
Qu es un script?............................................................................................................................... 199
Guardar y cargar scripts ....................................................................................................................... 200
Crear un script .................................................................................................................................... 200
Barra de herramientas del editor de scripts ............................................................................................ 201
Atajos de teclado ................................................................................................................................ 202
7

www.aprendegamemaker.com
Pestaas de scripts.............................................................................................................................. 203
Cdigo de colores ............................................................................................................................... 203
Buscar y reemplazar texto.................................................................................................................... 203
Agradecimientos...................................................................................................................................... 205
Nota final................................................................................................................................................ 205

www.aprendegamemaker.com

Empezamos
Si ests aqu, es porque te interesa hacer juegos. Es posible que ya sepas usar Game Maker
Studio, o simplemente has odo hablar de l, o no tienes ni idea de cmo empezar a crear tus
propios videojuegos. En esta gua intentar, aunque no sepas ni cmo empezar, explicar
todo lo necesario para que utilices una de las mejores herramientas que existen en el
mercado.

Que encontrars
Vamos a hablar de cmo crear tus propios videojuegos, utilizando una herramienta creada
para ello. Esta herramienta se llama Game Maker Studio. Vamos a hacer un repaso a todas
las opciones principales que ofrece, como aadir imgenes, sonidos, fondos, como se
programa para que tu juego tenga animaciones, etc.
Una vez conozcamos el programa, empezaremos a escribir un poco de cdigo, as
aprenderemos a programar el lenguaje propio que lleva. De esta manera, podremos hacer
cosas ms avanzadas, como juegos en red, grabar partidas en el ordenador, crear un
inventario y un largo sin fin de opciones. Despus podremos ver cmo adaptar tu juego a los
diferentes dispositivos y aprovechar cada una de las caractersticas.
Aunque toda la parte de codificacin con el lenguaje GML, as es como se llama, lo veremos
en otra gua.

Suscrbete para recibir todas las novedades y ayudar al blog


El blog no sera posible si t no lo lees. Para m lo ms importante es crear una comunidad
dnde todos aprendamos y nos ayudemos unos a otros. Si te suscribes, irs recibiendo todas
las novedades, podrs preguntar todas las dudas que tengas y as aportar valor para todos.
Tambin he creado una pgina de Facebook y una cuenta de Twitter para que as entre
todos estemos conectados. Tambin puedes ponerte en contacto conmigo desde aqu.
Tengo en mente hacer muchas cosas para el futuro, como crear cursos, plantillas de juegos,
recursos como audio y grficos, todo lo que crea que podamos necesitar!
As que bienvenido a mi humilde morada. Vamos a empezar!

www.aprendegamemaker.com

Qu es Game Maker Studio


Tal y como dicen los mismos de www.yoyogames.com (la web detrs de este programa): todos
sabemos que es divertido jugar a videojuegos, pero es ms divertido disear tus propios
juegos y que otras personas lo jueguen. Pero crear un juego no es una tarea sencilla, nos
podemos imaginar que implica crear cualquiera de los juegos que jugamos: un guion, sonido
y msica para ambientarnos, un diseo coherente con lo que queremos mostrar, horas de
programacin para que todo funcione perfectamente, ms horas para probar que todo lo
que hemos comentado funcione. Parece una tarea que no puede hacer un grupo pequeo
de personas.
Aunque parezca que este panorama ha cambiado ahora con la creacin de muchos estudios
indies que se juntan un pequeo grupo de personas, pueden llegar a crear cosas muy
interesantes en muchas plataformas, tenemos herramientas desde hace aos que nos
facilitan estas tareas. Una de estas herramientas es de la que hablaremos en este blog:
Game Maker Studio.

Que nos ofrece Game Maker Studio


Game Maker Studio es un programa orientado al desarrollo de videojuegos. Se cre
originariamente para ayudar a estudiantes con pocas nociones de programacin, y esa
filosofa se mantiene hoy en da. Tiene una interfaz muy sencilla que nos permite hacer
prototipos a los pocos minutos, ya que tiene acciones predefinidas que podemos usar
simplemente haciendo Drag&Drop (arrastrar y soltar) y usar las imgenes y sonidos que
tenemos rpidamente para ver los resultados. Con la versin actual nos permite exportar a
mltiples plataformas, desde Windows, MAC y Linux, hasta HTML5, iOS, Android, Windows
Phone y ltimamente incluso a videoconsolas como PS3, PS4, PS Vita y Xbox. Y todo esto sin
cambiar de programa!
Adems, si queremos hacer cosas avanzadas, tiene un lenguaje propio llamado GML, que
nos permite hacer cosas como:


Juegos multijugador,

Utilizar Inteligencia Artificial para el movimiento de los enemigos,

Aprovechar los logros y las tablas de puntuacin de todas las plataformas,

Utilizar fsicas, physics en ingls, como en el juego de Angry Birds,

Posibilidad de crear extensiones especficas para cada plataforma.

Juegos en 3D,

etc.

10

www.aprendegamemaker.com

Como vemos, las posibilidades son muchas y todo depender de la dedicacin, en horas y
horas, que hagamos a nuestro proyecto.

Versiones de Game Maker Studio


Actualmente, tenemos una versin gratuita que nos permite acceder a todas las
posibilidades del programa, con la posibilidad de exportar a juegos para Windows. La nica
pega es que aparece una pantalla inicial con el logo de Game Maker. Esta es la versin que
ellos llaman Standard.
Si queremos optar a ms opciones avanzadas, como modificar esa pantalla inicial, usar
texturas en las imgenes (ya explicaremos ese apartado cuando llegue), tener mltiples
configuraciones (por ejemplo, crear un juego Free y otro de pago), testeo en Android, tiene
la versin Professional, que cuesta actualmente 149$. Con esta versin tambin tenemos la
posibilidad de comprar los diferentes mdulos de exportacin que nos pueda interesar.
Tambin nos ofrece exportarlos para Mac OSX y Ubuntu Linux en el mismo paquete bsico.
Pero si queremos la exportacin para HTML5 o el mdulo de Tizen (una nueva plataforma
parecida a Android que ha sacado Samsung), el precio es de 199,99$ cada uno. Si adems
queremos otras exportaciones interesantes, como pueden ser iOS, Windows Phone 8 o
Android, el precio sube a 299,99$. Las exportaciones a videoconsolas tambin cuestan
299,99$, y tenemos para Xbox One, PS4, PS Vita y PS3. Tambin hay que tener en cuenta el
hardware que necesitamos. Por ejemplo, para exportar a Ubuntu Linux, necesitamos un
ordenador con ese sistema operativo, al igual que para exportar a iOS y/o Mac OSX
necesitamos un iMac o un MacBook Pro. Otro tema es que si queremos exportar para
videoconsolas necesitamos entrar en programas de desarrolladores de cada plataforma,
dnde existen otros requisitos que hay que tener en cuenta.
Tambin existe una versin llamada Master Collection, que con un precio de 799,99$,
permite la exportacin de todos los mdulos que hemos comentado anteriormente, y
adems nos ofrecen todos los mdulos futuros que vayan a existir. Por ejemplo, si tenemos
muy claro que queremos hacer juegos para Android, podramos adquirir la versin
Professional + el mdulo de Android, con un precio de 149,99$ + 299,99$. Eso hace un total
de 449,98 dlares. Si adems queremos tambin exportar para iOS, podemos adquirir el
mdulo de iOS por 299,99$ ms, o valorar la versin Master Collection por un poco ms de
diferencia. Podis ver todas las opciones en una tabla que hay en su pgina web
http://www.yoyogames.com/studio
Entiendo que si alguien ve estos precios, puede desilusionarse o pensar que nunca podr
crear un juego para dispositivos mviles. Creo que el precio puede parecer un poco elevado,
pero compensa sobradamente con las horas que vamos a ahorrar si desarrollamos
11

www.aprendegamemaker.com

directamente con Swift o Objective-C, el lenguaje para iOS, o en Android. Adems, con la
versin gratuita podemos darle una oportunidad a esta herramienta para ver si nos puede
servir para crear nuestro juego, y luego valorar si merece la pena pagar y con unos ligeros
cambios tenerlo adaptado con la plataforma que finalmente queremos.

Conclusin final
Creo sinceramente que con Game Maker Studio es posible hacer fcilmente videojuegos,
adems que permite exportarlo a casi todas las plataformas que existen actualmente. En
esta web te ensearemos todas las opciones del programa, tutoriales paso a paso para
conocer qu podemos hacer y como lo hace la herramienta. Tambin veremos el lenguaje
GML para poder hacer cosas ms avanzadas, as como pequeos trucos para que nuestros
juegos tengan el aspecto de un verdadero profesional.
Si quieres que toque algn tema en concreto, un tutorial sobre un tipo de juego, algo que no
sabes hacer o no te sale, no dudes decirlo en los comentarios o contactar conmigo. Entre
todos intentaremos que podamos sacar nuestros juegos adelante.

12

www.aprendegamemaker.com

Requisitos de Game Maker Studio


Para poder usar Game Maker Studio, es importante ver los requisitos mnimos que
necesitamos para usar la aplicacin. Aunque estos requerimientos no son muy exigentes, no
hace falta comentar que si nuestro ordenador sobrepasa los mnimos garantizaremos el
correcto funcionamiento.
Adems del uso del programa, si tenemos o queremos adquirir los diferentes mdulos de
exportacin, hay que tener en cuenta ms opciones. Aunque todas estas opciones estn en
la pgina web, vamos a verlas en detalle.

Requisitos de Game Maker Studio: uso de la aplicacin


Para poder usar Game Maker, necesitas un ordenador con sistema operativo Windows XP, 7
u 8, un mnimo de 512 MB de RAM y 128 MB de tarjeta grfica. Tambin es necesario
conexin a internet para cosas concretas, como puede ser activar la licencia, solo la primera
vez, aunque suelen hacer recordatorios cada cierto tiempo, o para actualizar de versin. Los
juegos que exportemos para Windows tambin necesitan los mismos requerimientos
comentados. Eso s, aunque podamos exportar juegos que ejecutaremos sin problemas para
Windows 8, si queremos utilizar la exportacin nativa, para el Windows Store, s que
necesitaremos el mismo sistema operativo.
Para Windows Phone 8 tambin necesitamos Windows 8, adems de instalar el SDK de WP8
y un mvil con este sistema operativo (cualquier mvil Nokia sera ms que suficiente).

Requisitos de Game Maker para Android, HTML5, Tizen


Si hemos adquirido algunos de los diferentes mdulos de exportacin, o hemos adquirido la
versin Master Collection, si queremos probar nuestros juegos en Android, aparte de las
instalaciones de SDK propiamente dichas que tenemos que configurar, necesitaremos un
telfono o tablet con Android 2.3 instalado.
Para el sistema operativo Tizen no sera necesario disponer de un dispositivo, ya que el
propio SDK de Tizen nos crea un emulador para probar, aunque es muy recomendable poder
pedir un prototipo de desarrollo. En mi otro blog (estoy haciendo un poco de autobombo, lo
s ^_^ ) explico cmo configurar un dispositivo de este sistema operativo para probarlo.
Para probar en HTML5, con que tengamos cualquier navegador actualizado a las ltimas
versiones es suficiente para probar nuestros juegos.

13

www.aprendegamemaker.com

Como vemos, con el mismo ordenador podemos usar diferentes mdulos de exportacin,
pero ahora hablaremos de algunos mdulos que nos obligan a necesitar otros ordenadores o
dispositivos para testear los proyectos.

Requisitos de Game Maker para Mac OS X y juegos en iOS


Tanto si queremos exportar juegos para Mac OS X como si queremos crear juegos para
iPhone/iPad, necesitamos disponer de un ordenador con sistema operativo Mac OS X 10.6
Snow Leopard. Eso implica que aparte del PC donde tendremos instalado Game Maker
Studio, necesitamos otro ordenador, principalmente un iMac o un MacBook Pro. Con la
versin de sistema operativo que nos obliga a tener, necesitamos un mnimo de 1GB de
RAM.
Adems, si queremos probar todas las caractersticas de un juego en iOS, aparte del mdulo
de exportacin necesario, necesitamos un iPhone o un iPad que tenga como mnimo iOS 5.0.

Requisitos de Game Maker para Ubuntu Linux


Si queremos exportar juegos para Linux, necesitamos uno de los sistemas operativos ms
famosos en esta plataforma: Ubuntu. Tal y como nos pasa para Mac OS X, aparte de nuestro
PC con Game Maker instalado, necesitamos otro PC con Ubuntu 14 o superior, con un
mnimo de 512 MB de RAM y un driver correcto para tarjetas grficas OpenGL.

Requisitos de Game Maker para videoconsolas


Es una gran ventaja que nuestro mismo proyecto podamos exportarlo para diferentes
plataformas, ya sea iOS, Android, html5, Windows, etc. Igualmente, que podamos utilizar el
mismo proyecto para poder jugar en nuestras consolas, ya sea Xbox One o PlayStation
(quin sabe si en un futuro para WiiU), nos ahorra muchas horas de adaptacin y correccin.
Pero, siempre hay un gran pero, hay que tener en cuenta que desarrollar para una
videoconsola no es lo mismo que para un ordenador o un dispositivo mvil.
Para Xbox One, hay que registrarse en Microsoft aqu. No s si los requisitos varan mucho
entre pases, pero seguramente sea necesario tener kits de desarrollo (estoy hablando de
hardware, si tenemos una consola Xbox One no nos sirve), y adems nos pedirn un mnimo
de experiencia en otras plataformas (tener otros juegos ya visibles que nos sirva de
curriculum).

14

www.aprendegamemaker.com

Para PlayStation, hay que registrarse en Sony aqu. Nos pedirn mucha informacin, al igual
de experiencia demostrada en otros entornos, una direccin IP esttica, es decir, tener un
servidor propio dedicado, adems de una compaa creada legalmente.
Como hemos visto, aqu el problema no slo es de programar nuestros juegos, sino de tener
el equipo apropiado para hacerlo. Pero no nos tenemos que preocupar ahora en tener todos
los dispositivos necesarios, sino de instalar y entender cmo funciona el programa. As que
vamos a instalarlo.

15

www.aprendegamemaker.com

Gua de cmo empezar con Game Maker Studio


Si queremos probar Game Maker Studio, aqu haremos una pequea gua de cmo instalar y
usar la herramienta que utilizaremos para empezar a hacer nuestros propios juegos.
Empecemos con descargar el programa aqu.

Antes de empezar: otras versiones de Game Maker


Antes de empezar a descargar e instalar Game Maker Studio, quiero destacar que existen
otras versiones de Game Maker. La herramienta lleva muchos aos y ha ido cambiando de
versin. Podemos encontrarnos la versin Game Maker 8.1 y la versin Game Maker for
Mac, que se basa en la versin de Game Maker 7.

Game Maker 8.1

Con Game Maker 8.1 podemos hacer juegos para Windows, y se parece bastante a la versin
Game Maker Studio, pero hay que destacar que hace tiempo que no la actualizan porque
YoYoGames, la empresa que est detrs de Game Maker, ha apostado por la versin Studio.
Es posible exportar proyectos de Game Maker 8.1 a Studio, aunque la compatibilidad no es

16

www.aprendegamemaker.com

del 100%, ya que las caractersticas entre una versin y otra varan, sobre todo porque la
versin Studio tiene que tener en cuenta la compatibilidad entre todas las exportaciones que
ofrece. Estas versiones dejaron de poder descargarse en 2015, as que ya no es posible
acceder a ellas.

Descargar e instalar Game Maker Studio


Le damos al botn Download Game Maker:Studio y nos bajar un ejecutable. Recordemos
que vamos a instalar la versin Standard, que es la gratuita. Si en cualquier momento
queremos adquirir la versin Professional o adquirir uno de los mdulos de pago, con el
botn que vemos de compra Buy Game Maker: Studio.
Otra opcin que tambin vemos es la opcin de Game Maker Studio: Early Access. De
momento vamos a ignorar esta opcin ya que la explicaremos en un futuro post.
Una vez tengamos el ejecutable, no nos debemos olvidar de los requisitos mnimos que
necesitamos para su correcto funcionamiento. Al final de la gua los comentaremos, tanto
del programa como de los diferentes mdulos de exportacin que existe. Si hacemos doble
click en el fichero que hemos descargado, tendremos un asistente para la instalacin que
nos facilitar la tarea si seguimos todos los pasos que nos indica. Una vez instalada la
aplicacin podemos ejecutarla en el icono que hemos creado.
Posibilidad de instalar Game Maker Studio desde Steam
Game Maker Studio tambin est disponible desde la plataforma Steam. La nica diferencia
es que en vez de bajar un fichero para instalar, el programa se instalar automticamente,
adems de aadir la opcin de crear un icono para poder ejecutarlo.

Activacin de Game Maker Studio


Una vez instalado Game Maker Studio, al ejecutar el programa nos pedir una clave de
licencia. Si hemos comprado cualquier versin o mdulo, podemos aadir ahora la clave que
hemos recibido por e-mail, dnde se validar por internet que es correcto. Si no hemos
comprado ningn mdulo y queremos la versin gratuita, igualmente necesitamos la
conexin a internet para la activacin. De esta manera, vemos que la instalacin es siempre
la misma, y aadir mdulo o cambiar de versin no nos implica volver a instalar el programa,
sino desbloquear ms opciones de exportacin.

Qu opcin elegir: canal Beta o canal Estable

17

www.aprendegamemaker.com

Una vez hemos instalado y activado Game Maker Studio, an nos aparece una opcin ms a
configurar al principio. Nos aparecer dos opciones a elegir: si queremos la opcin Beta
Channel o Stable Channel.
Game Maker Studio es un programa en constante cambio, ya sea porque corrigen errores
detectados o porque aaden mejoras que nos aportan nuevos recursos que podemos incluir
en nuestros juegos. As que es bastante normal ver que cambian de versin. Si queremos
tener la ltima versin siempre, con los ltimos bugs o errores corregidos y las mejoras
implementadas en el ltimo momento, podemos elegir la opcin Beta Channel. En cambio, si
queremos esperar a las versiones ms estables del programa, dnde tendremos menos
actualizaciones que poner y tendremos todas las correcciones y mejoras de golpe, elegira la
opcin Stable Channel. Para la versin gratuita recomiendo la ltima opcin, ya que la gran
mayora de cambios son para otros mdulos y plataformas que no nos afectara
directamente a nosotros.

La primera pantalla: un vistazo al interface de Game Maker


Ya hemos instalado y configurado Game Maker Studio! Aunque existen muchas ms
opciones de configuracin, ya tenemos todo lo necesario para poder empezar a crear
nuestros primeros proyectos. Para acabar esta primera gua de iniciacin, explicaremos un
poco las opciones iniciales que nos ofrece siempre que ejecutemos el programa. Es posible
que tambin aparezca una ventana de actualizacin de versin, dnde podremos ver en
ingls todas las mejoras que incorpora, y los errores corregidos, y podemos elegir si
instalarla ahora o ms tarde. Pero no nos desviemos del tema.
La primera pantalla que vemos es una ventana que tiene varias pestaas, donde cada una de
ellas nos ofrece cosas totalmente diferentes. Dependiendo de lo que queremos hacer
navegaremos en las opciones que nos interesa.

Pestaa Welcome: Bienvenido a Game Maker Studio


La primera pestaa es de bienvenida, donde podemos ver trucos y consejos que tiene el
programa. Abajo tendremos un listado de los ltimos proyectos que hemos abierto. Si
hemos instalado el programa por primera vez, es normal que esta pestaa est vaca.

18

www.aprendegamemaker.com

Pestaa Open: Abrir un proyecto


La segunda pestaa nos ofrece abrir un proyecto que tengamos en nuestro ordenador. Si no
aparece en la lista de ltimos proyectos que hemos comentado anteriormente, podemos
buscarlo con esta opcin.

Pestaa New: Crear un nuevo proyecto


En la tercera pestaa podemos crear un proyecto nuevo. Nos aparecer una ruta por
defecto, que podemos cambiar si nos interesa, y el nombre de nuestro nuevo juego. Si
tuviramos un equipo de desarrolladores y queremos que se controle el uso de nuestro
proyecto, esto se hace normalmente con un programa externo tipo TortoiseSVN podemos
marcar el check, pero como lo habitual es no tenerlo podemos ignorar esta opcin.

Pestaa Import: Importar nuestro proyecto


Cuando creamos un proyecto en Game Maker Studio, nos crea bastante ficheros y carpetas
dentro la ruta que le hemos indicado en la pestaa anterior. Si queremos copiar nuestro
proyecto, la mejor opcin es exportarlo a un fichero nico con extensin .gmz (esto se puede
hacer en una opcin de men). Si luego queremos volver a usar ese fichero, podemos
importarlo desde esta pestaa. Vemos tambin que nos permite importar versiones
anteriores de Game Maker o copias de seguridad que hace el programa automticamente.
Como lo importa como si fuera un proyecto nuevo, vemos las mismas opciones de ruta y
nombre de proyecto que hemos visto antes.

Pestaa Release notes: Notas de la versin


Tal y como hemos comentado cuando nos aparece una versin nueva, en esta pestaa
podremos ver todos los cambios que hemos tenido con la versin que tenemos instalada.
Tambin veremos la correccin de errores y mejoras que han incluido. Si navegamos ms
abajo, es posible que veamos las mejoras y cambios que han incorporado en versiones
anteriores a la nuestra.

Pestaa Demos: Proyectos de ejemplo


Con la instalacin de Game Maker Studio, puedes acceder a muchos proyectos de ejemplo
que puedes descargar para ver cmo los han hecho. Podemos ver los Tutoriales completos,
proyectos en diferentes categoras como Principiante, Intermedio y Avanzado, y temas
19

www.aprendegamemaker.com

concretos de otros entornos, como el uso de aadir un banner de publicidad en plataformas


mviles, aadir opciones de Google Analytics, etc.

Pestaa Tutorials: Tutoriales para aprender


En esta pestaa podemos ver proyectos incompletos para aprender la herramienta. Una vez
descargado, podemos ver diferentes pasos y ayudas para poder completar el tutorial.
Igualmente, si queremos ver el proyecto completo lo tendremos en la pestaa Demos.

Pestaa News: Noticias


En esta pestaa podemos ver todas las noticias que aparecen en la web de todas las
novedades, ofertas, juegos, etc. As podemos verlas rpidamente desde aqu.

Pestaa License: Licencias


En esta ltima pestaa veremos la licencia legal, el tpico texto de uso y trminos de
cualquier aplicacin, adems de otras licencias que utilizan. Tambin podemos ver a la
derecha todo el equipo que desarrolla Game Maker Studio.

Paso Final
Hemos explicado como instalar Game Maker Studio, como activar nuestra licencia gratuita y
como configurar las primeras opciones que nos aparecen. Tambin hemos visto la primera
pantalla que siempre veremos al inicio y todas las posibilidades que tenemos. Ahora es
cuestin de elegir alguna de ellas, ya sea un Tutorial para empezar, ver alguna de las Demos
o simplemente empezar con un proyecto nuevo.
Prximamente explicaremos algunos de los tutoriales y demos para analizarlos y as ver en
detalle que nos ofrece.

20

www.aprendegamemaker.com

Qu es Game Maker Studio: Early Access


Desde la versin 1.3 de Game Maker Studio tenemos la posibilidad de instalarnos una
versin llamada Early Access. Seguro que lo habis visto en muchos juegos. Pero qu
significa realmente? No exista ya un Beta Channel para los cambios de versin? Vamos a
analizar si creemos que es necesario tener otra instalacin del programa.

Beta channel vs Stable Channel: elegir entre canal Beta o canal


Estable de Game Maker Studio
Antes de ver que es el Early Access (EA) de Game Maker, vamos a ver qu hace realmente la
opcin que viene con el programa que utilizamos. Me refiero a como queremos que se
actualice nuestra aplicacin.
Si elegimos la opcin Beta channel, recibiremos actualizaciones ms frecuentemente, ya que
todas las funcionalidades que ya tienen probadas y los errores corregidos los podremos
tener casi al momento. Eso no significa que YoYoGames no hayan probado esa versin, pero
recomiendan hacer, o activar por defecto, copias de seguridad o incluso guardar tu proyecto
ms frecuentemente cuando lo ests ejecutando.
Cuando ya ha pasado un tiempo prudencial, podemos decir que todas las correcciones que
han hecho estn estables. Vaya, que no han tenido ninguna sorpresa con todo lo que han
corregido. Entos agrupan varias versiones betas y sacan una versin para el Stable channel.
Cul es mi recomendacin? Si slo estamos haciendo juegos para pc, Windows o Mac OS X,
prefiero tener marcada la opcin Stable channel, ya que muchas mejoras corresponden a
otras exportaciones de plataformas que seguramente no usemos. Igualmente, no estamos
obligados a instalar una versin concreta y la podemos descartar hasta la prxima versin.

Puedo actualizar en cualquier momento? Y cambiar de canal?


Si en algn momento queremos pasar de Beta channel a Stable Channel o viceversa,
podemos hacerlo desde el icono que nos aparece en la barra de Windows, marcando la
opcin que queremos. Igualmente, si queremos forzar una actualizacin, la ms reciente que
detecte, podemos hacerlo desde la misma opcin.

21

www.aprendegamemaker.com

Beta Channel y Stable Channel en Game Maker Studio

Antes de actualizar cualquier versin, para evitar problemas, deberas hacer una copia de los
archivos de configuracin de Game Maker Studio. Estos archivos se encuentran en las
siguientes rutas:
%appdata%\GameMaker-Studio
%localappdata%\GameMaker-Studio
Si estamos utilizando un Windows XP, la ruta cambia a la siguiente:
%USERPROFILE%\Local Settings\Application Data

Entonces, qu es el Early Access de Game Maker (Acceso


Temprano)?
Tal y como he comentado, desde la versin 1.3 han incorporado novedades importantes, y
desde que empiezan a desarrollar todos estos cambios hasta que aparece la versin puede
pasar bastante tiempo (estamos hablando de meses). Por ejemplo, en la versin 1.3, como
novedad se pueden aadir archivos Flash SWF como si fuesen imgenes. Puede que te
interese empezar a probar cosas en tu juego con archivos SWF, o cualquier otra novedad de
las que anuncian. As podemos tener un poco de ventaja y adelantarnos en nuestro
desarrollo hasta que hacen la versin definitiva.
Est claro que el Early Access no es una versin estable del programa, es por eso que
decidieron ponerlo como una instalacin independiente. As que hay que tener en cuenta
que si decidimos aprovechar las nuevas caractersticas y crear un proyecto desde el EA, este
proyecto no ser compatible con la versin que tenemos instalada con Game Maker Studio.
No recomiendo usar el Early Access como un programa para desarrollar nuestros juegos,
sino ms bien una manera de probar cosas nuevas que nos pueden servir en un futuro.
Podemos decir que lo que tenemos en EA es la versin previa a la Beta, as que seguramente
no tenga la estabilidad que queremos para poder sacar un juego con esta versin.
22

www.aprendegamemaker.com

Para finalizar, hay que destacar como han numerado la versin del EA comparado con la
versin de Game Maker Studio. Con Early Access tenemos una versin 1.99.X. De esta
manera nos ayudar a no confundirnos si tenemos las dos opciones instaladas.

23

www.aprendegamemaker.com

Como funciona Game Maker Studio


Ahora que tenemos instalado Game Maker Studio y nos hemos creado nuestro primer
proyecto, nos adentramos en el programa para ver qu cosas podemos hacer. Empezamos a
ver muchas opciones y nos perdemos un poco en los mens. Os ha pasado? A m me pas
la primera vez, pens: PERO ESTO QU ES? No representaba que este programa facilitaba
las cosas a la hora de hacer juegos? La verdad que la primera vez puede ser un poco
chocante tantas opciones, pero si le damos un vistazo rpido y entendemos para qu sirven
todas, veremos como no es tan complicado como parece.

Antes de nada: lpiz y papel


Antes que empieces a trastear en la aplicacin, es bueno que hagas tu diseo en una libreta.
Aunque sea un prototipo muy sencillo, es mucho ms fcil que globalmente veamos como
funciona todo si est diseado sobre papel. Adems, todo lo que veas que no encaja podrs
corregirlo rpidamente. No te puedes imaginar lo decepcionante que es cuando ya tienes
muchas cosas avanzadas y tienes que tirar hacia atrs cuando ves que tienes errores de
planteamiento. As que haz muchos diseos y prototipos, sobre todo en papel!
En la seccin de blog tcnico hay un artculo muy interesante que comenta esta parte.
Puedes verlo en la siguiente direccin.

La idea global: como funciona Game Maker Studio


Ahora si que vamos a ello. Todos los juegos creados en Game Maker tienen lugar en una o
ms habitaciones, o como puedes ver en el programa, las denominadas rooms. Estas
habitaciones son espacios que funcionan en dos dimensiones, el 3D lo dejaremos en un
captulo aparte de momento, y colocamos en ella objetos, que tendrn sus propias
funcionalidades. Ejemplos de objetos? Todo lo que nos podamos imaginar. El personaje
principal controlado por el jugador, paredes, suelo, plataformas en movimiento, pinchos,
bolas, enemigos, monstruos, etc. Todo estos son objetos, que podemos controlar para
interactuar con ellos (podemos interactuar con el teclado, ratn, joystick o pad, pantalla
tctil) o podrn tener su propia lgica. Como vemos, los objetos son el elemento ms
importante de la herramienta Game Maker Studio.
Todos estos objetos los vemos porque les hemos asignado una imagen, o varias imgenes
para mostrar un movimiento, pero tambin podemos tener objetos que no se vean: control
para guardar nuestro juego en algn momento, reproducir msica de fondo, etc

24

www.aprendegamemaker.com

Volviendo a estas imgenes, Game Maker Studio las llama sprites: un sprite puede ser una
sola imagen, o un conjunto de imgenes, para dar la sensacin que el personaje est
caminando, o una explosin.. pero tenemos que tener claro que no existen imgenes en
movimiento solas en nuestra room: tenemos objetos que estn asociados a estos sprites.
Podemos tener diferentes sprites y cambiarlos para el mismo objeto.
Para poder llegar a una room con objetos, y que estos objetos tengan sprites, tenemos que
hacer el proceso al revs: primero creamos y aadimos el sprite, luego creamos el objeto y le
asignamos ese sprite, y luego creamos una room y aadimos ese objeto.

Cmo funcionan los objetos


Tenemos claro que la mayora de objetos que utilicemos tendr una imagen o sprite
asociado, pero si hacemos la prueba, veremos que el objeto no hace nada. Para que un
objeto realmente haga algo, tenemos que darle acciones, pero tambin tenemos que decir
cuando se ejecutan estas acciones. Veamos como se ve un objeto en Game Maker:

Ventana de propiedades de un objeto en Game Maker Studio. Desde aqu se hace toda la programacin

Para poder decir cuando se ejecuta una accin, tenemos los eventos. Un evento es un
momento especial donde podemos colocar ciertas acciones, as estamos seguros que esas
acciones slo ocurrirn cuando se activa el evento. Tenemos un gran nmero de eventos
diferentes que pueden ejecutar acciones, que tambin son totalmente diferentes. Por
ejemplo: podemos tener un evento que solo se ejecuta la primera vez que se crea el objeto.
Podemos asignarle acciones que slo se ejecutarn una vez hasta que ese objeto se
destruya.
25

www.aprendegamemaker.com

En realidad no es totalmente cierto lo que estoy diciendo. Os estoy engaando? Slo un


poquito para que entendis el concepto. Los objetos nunca se crean en la room. Lo que se
crea en la room son las instancias, que es una copia del objeto base, con todas sus acciones y
eventos. Podemos decir que un objeto es una plantilla, y la instancia coge esa plantilla, y solo
esa, como referencia.
Otro ejemplo de un evento que tenemos para su uso es el evento colisin. Este se produce
cuando dos instancias de objetos chocan en la room. Ejemplos de acciones que podemos
hacer cuando ocurre este evento: podemos hacer que se pare al llegar una pared, o que
rebote y se mueva en direccin inversa, o cualquier otro tipo de accin, como reproducir un
efecto de sonido a aadir puntos a un logro. Hay otros eventos de interaccin con el jugador,
como los eventos de teclado, cuando se presiona una tecla, o el evento de ratn que detecta
los botones pulsados, o el eventoDraw, por si nos interesa dibujar lo que queramos (vida,
barra de energa, puntuacin, efecto rojo de dao, etc). Hay muchsimos eventos, de ellos
hablaremos ms adelante.

Interaccin de objetos con habitaciones


Una vez hemos diseado nuestros objetos, podemos definir nuestras habitaciones (rooms)
en los que se colocarn. Las rooms se pueden usar como los niveles del juego o para mostrar
informacin, o incluso para disear un men de inicio. Hay acciones para movernos entre
habitaciones, as que podemos crear un objeto que sea un botn que, cuando se pulsa,
mover el jugador de una room a otra.
Otra cosa que hay que tener en cuenta es que si no tenemos ninguna room, Game Maker no
ejecutar el juego. Tiene lgica, verdad? Para crear una room, Game Maker dispone de un
editor propio para crear este aspecto. En el mismo editor podemos aadir y modificar
muchos aspectos de cmo se ver la room y como se jugar. Por ejemplo, se pueden agregar
imgenes de fondo, que puede ser tambin un color simple, se pueden aadir una o varias
instancias de cualquier objeto, como puede ser un objeto muralla para crear grandes
estructuras de paredes o laberintos. Tambin se pueden aadir enemigos, elementos, etc. y
as completar un nivel entero a partir de unos pocos objetos de base. Aqu un ejemplo de
cmo es el editor de rooms:

26

www.aprendegamemaker.com

Ventana de edicin de room en Game Maker. Aqu colocaremos nuestros objetos para disear nuestro juego.

Final y ms recursos
Hasta aqu hemos cubierto las cosas ms importantes de Game Maker, pero existen ms
elementos que hacen enriquecer nuestro juego. Podemos ver en la pantalla principal, en el
lado izquierdo est el rbol de recursos, una lista de todos estos recursos que harn un papel
crucial en la creacin de nuestro juego.


Sprites: hemos comentado que los sprites son imgenes (habitualmente estn
animadas) que se utilizan para representar los objetos.

Sonidos: se pueden aadir sonidos a los juegos, como msica de fondo o efectos.

Fondos o backgrounds: imgenes fijas utilizadas como fondos en nuestras rooms.

Paths o caminos: se utilizan para definir casos que se mueven por una trayectoria
predefinida.

Scripts: trozos de cdigo a los que les damos un nombre y podemos utilizar en varios
sitios diferentes.

Shaders: es una combinacin de dos programas, escrito en su lenguaje propio para


crear efectos grficos.

Fonts o fuentes: si queremos dibujar texto en el juego podemos definir varios tipos de
letra.
27

www.aprendegamemaker.com

Timelines o lneas de tiempo: se utilizan para controlar, en un momento preciso en el


juego, que sucedan una serie de cosas.

Objetos: son los bloques de construccin en que se basa el juego.

Rooms o habitaciones: es el espacio dnde se colocan los objetos.

Included files o archivos incluidos: son archivos que exportamos en destino para su
uso.

Extensions o extensiones: las extensiones sirven para ampliar la funcionalidad que nos
ofrece el programa.

Constantes o macros: es una lista de valores que podemos definir en nuestro juego.

Para ayudar a familiarizarse con todos estos elementos, es recomendable seguir algunos
tutoriales para principiantes que encontramos en el mismo programa. Tal y como coment,
lo encontraremos en la pestaa Tutoriales de la pantalla de inicio. De esta manera cubrira
todas las funcionalidades bsicas y nos ayudar a entender todos estos conceptos.

28

www.aprendegamemaker.com

La interfaz grfica de Game Maker Studio


Si ya has creado tu primer proyecto con Game Maker, te encontrars con un montn de
informacin en la ventana principal del programa. Tendr un aspecto parecido a ste:

Interfaz grfica de Game Maker Studio. Imagen que se puede ver en la ayuda del programa.

Esta es la interfaz grfica principal de Game Maker Studio, donde controlaremos los aspectos
ms importantes de tu proyecto actual.
A la izquierda podemos ver los diferentes recursos que hemos comentado anteriormente:
sprites, sonidos, fondos, rutas, scripts, fuentes, timelines, objetos, ajustes de juego y
extensiones. En la parte superior de la ventana hay un men y una barra de herramientas
para acceder a algunos de los comandos ms utilizados al crear un juego. Supongo que os
habis dado cuenta que existen muchas maneras para hacer las mismas cosas, ya sea
eligiendo en el men, haciendo click en la barra de herramientas o haciendo click con el
botn derecho sobre una opcin en el rbol de recursos. Aunque pueda parecer redundante,
puede servir para que lo uses de la forma ms fcil y natural y como te sientas ms cmodo.

El rbol de recursos de Game Maker Studio


A la izquierda, como hemos comentado, encontraremos el rbol de recursos, donde podrs
ver que est organizado de forma jerrquica. Funciona de la misma forma que el explorador
de Windows, as que estars acostumbrado a como funciona. Si un elemento tiene un signo
+ delante de l, al hacer click en el signo ampliar para ver los recursos que hay en su
interior. Al hacer click en el signo - los volvemos a ocultar (se contraer el rbol). Podemos
cambiar el nombre de un recurso (excepto los que vemos en el nivel superior, ya que vienen
de base en el programa y sirven para mostrar que tipo de recursos figuran dentro)
seleccionandolo una vez con un solo click, y luego dar otro click en el nombre. Al hacer doble
29

www.aprendegamemaker.com

click en un recurso se abrir automticamente sus propiedades para que se pueda editar y
cambiar todas las cosas relacionadas con l. Con el botn derecho del ratn aparecer un
men contextual que contiene las mismas opciones que se encuentran en el men Edicin.

Ejemplo de cmo filtrar el rbol de recursos

Puede cambiar el orden de los recursos haciendo click en un recurso especfico y


arrastrndolo al lugar apropiado dentro de ese grupo. Tambin puede filtrar el rbol de
recursos para mostrar solo las cosas que te interesen usando las opciones de bsqueda y
filtro en la parte inferior.

La barra de herramientas
La barra de herramientas en Game Maker Studio contiene botones para crear cada uno de
los recursos, as como otros botones adicionales para crear un nuevo proyecto, abrir un
proyecto existente, guardar un proyecto, exportar un proyecto final (dependiendo de la
exportacin elegida en ese momento), abrir ajustes globales del juego y paquetes de
extensin, adems de abrir el archivo de Ayuda. Todos estos elementos, a veces se dicen
comandos, tambin se puede acceder a travs de los mens desplegables o utilizando
ciertas combinaciones de teclas (tambin se dicen Hot Key).
Existen dos botones, sin embargo, que no aparecen en ningn otro lugar de la pantalla
principal de Game Maker Studio:

30

www.aprendegamemaker.com

Detener el servicio web. Este botn se puede utilizar para cancelar la

compilacin de tus juegos en el mdulo de destino seleccionado, o en algunas


exportaciones, detener el juego mientras se ejecuta despus que haya sido compilado.

Limpiar cach del proyecto. Al pulsar este botn se borrar la cach de

compilacin, que es dnde se almacenan imgenes, sonidos, scripts, etc. con el objetivo
de ahorrar tiempo a la hora de probar tu juego, ya que slo se volver a compilar estos
recursos cuando ha cambiado algo antes de una prueba. Sin embargo, esta cach puede
quedarse corrupta con el tiempo, as que es preferible hacer una prueba completa sin
ningn almacenamiento en cach hecho anteriormente, borrandola pulsando este
botn.

Compilacin de destino
Desde la barra de herramientas veremos un men desplegable que permite elegir el
dispositivo para compilar y probar tu juego. De esta manera puedes cambiar rpidamente
entre los diferentes mdulos que hemos instalado (recordemos que con la versin gratuita
slo tendremos acceso a la opcin de Windows), y nos aseguraremos que nuestro proyecto
funciona correctamente en todos ellos. Los mdulos de exportacin disponibles son:


Windows.

Steam WorkShop. Incluido si has comprado la versin desde Steam.

MacOSX

Windows 8 (JavaScript).

Windows 8 (Nativo).

HTML5.

Ubuntu (Linux).

iOS.

Android.

Tizen.

Windows Phone.

Game Maker: Player.

Exceptuando la opcin de Windows, todas estas exportaciones estn como mdulos de


exportacin adicionales para la versin Profesional de Game Maker Studio.

31

www.aprendegamemaker.com

Configuraciones y espacio de trabajo (workshop)


Vemos en la barra de herramientas otro men desplegable que permite seleccionar la
configuracin actual de Game Maker, con un botn al lado que pone Administrar. Haciendo
click en el botn puedes abrir una ventana donde puedes aadir, eliminar o cambiar el
nombre de las configuraciones. Hablaremos ms adelante como usar esta informacin.
El espacio de trabajo es la zona donde aparecen los diferentes editores para nuestros
recursos, desde la creacin de rooms y la edicin de objetos, cdigo, scripts y dems
recursos. Es el rea ms grande del formulario para que podamos tener espacio con todos
los editores con los que trabajemos. Como vemos, ninguno de estos editores aparecer en la
barra de Windows, ya que estn incluidos dentro de la aplicacin.

El men principal
En la parte superior de la interfaz grfica de usuario se encuentran los mens desplegables,
donde se encuentran la mayora de acciones del programa. Como hay un gran nmero de
ellas, estn agrupadas en las siguientes categoras.


Men Archivo. En el men Archivo podemos encontrar acciones para cargar y guardar
ficheros, pero tambin hay acciones especiales.


Nuevo proyecto: est accin abrir la ventana para crear un nuevo juego desde cero.
Si hay un juego actual que ha cambiado, preguntar si quieres guardar antes de
continuar. Tambin existe un botn en la barra de herramientas que realizar la
misma accin.

Abrir proyecto: Abre un fichero de Game Maker Studio con extensin *.gmx.

Importar proyecto: Puede importar un proyecto *.gmz, que no deja de ser un


archivo comprimido (que luego se abrir como un proyecto estndar con extensin
*.gmx), tambin puede seleccionar otros tipos de archivos de otras versiones
anteriores, gm81, gmk, gm6 o gb1 Estas extensiones podran no funcionar
correctamente en la versin de Game Maker Studio debido a cambios histricos a lo
largo de los aos, as que es recomendable ver en la web de www.yoyogames.com,
los cambios que hay entre versiones.

Proyectos recientes: aparecer un men secundario con una lista de los proyectos
que ha abierto o modificado recientemente.

Guardar: guarda el archivo de proyecto de juego con su nombre actual.

Guardar como: guarda el proyecto de juego actual con un nombre diferente.


Aparecer una ventana para indicar el nuevo nombre.
32

www.aprendegamemaker.com

Guardar todo: guardar todos los ficheros pendientes en el proyecto actual.

Exportar proyecto: exporta el proyecto como un archivo Game Maker comprimido,


es decir, con la extensin *.gmz. Este archivo contendr toda la informacin
relevante de su proyecto actual (incluidos todos los recursos, extensiones,
informacin del juego, etc). que luego puede importar de nuevo en Game Maker
como un proyecto completo. Esto es muy til para mover un proyecto por internet o
almacenar los proyectos como si fueran copias de seguridad.

Crear aplicacin: una vez que el juego est listo, lo que quieres es dejarlo para que lo
prueben todos. Mediante esta accin crea una versin independiente de su juego.
Los ficheros producidos dependern del mdulo de destino elegido en el men
desplegable de compilacin.

Preferencias: abrir una ventana dnde se pueden ajustar opciones del programa,
as como comportamientos diferentes para tratar recurso, configuracin de mdulos,
etc. Esta opcin la trataremos con ms detalle ms adelante.

Salir: Esta opcin cerrar el programa, preguntando si queremos guardar el juego


actual si detecta cambios.

Men Edicin. El men de edicin contiene una serie de acciones relacionadas con el
recurso que tenemos seleccionado en ese momento en el rbol, a la izquierda de la
pantalla principal. Recordad que muchas de estas opciones tambin las encontraris si
hacis click derecho sobre un recurso, o grupo de recursos. Dependiendo del tipo de
recurso seleccionado, algunas de las acciones se ocultarn.


Insertar: inserta un nuevo recursos del tipo seleccionado. Se abrir el formulario


correspondiente para cambiar las propiedades de ese recurso (ya hablaremos en
detalle de cada recurso).

Duplicar: har una copia del recurso seleccionado en el rbol. El nuevo recursos
tendr un nombre predeterminado que se podr cambiar en el formulario que se
abrir.

Insertar grupo: inserta una subcarpeta dentro del rbol de recursos. Es muy til si
nos interesa agrupar objetos y cosas del mismo tipo para tener una referencia.

Eliminar: elimina el recurso seleccionado actualmente (o grupo de recursos).


Eliminar un recurso no se puede deshacer, as que hay que tener mucho cuidado con
esta accin, aunque te advertir si quieres completar la operacin. Dependiendo de
las preferencias que tengamos en el programa podemos decidir si al eliminar un
recurso lo elimina tambin del disco duro.

33

www.aprendegamemaker.com

Renombrar: podemos cambiarle al recurso su nombre. Tambin se puede hacer en la


ventana de edicin de cada recurso, o haciendo click derecho en el recurso del rbol,
seleccionando cambiar nombre en el men que aparece.

Propiedades: aparecer una ventana con la edicin de caractersticas en la ventana


principal que hemos comentado. Podemos editar muchos recursos al mismo tiempo
en esa ventana.

Buscar recurso: busca en el rbol el nombre que hemos indicado. Es muy til cuando
tengamos un proyecto muy grande con muchos recursos en subcarpetas agrupados.

Marcadores: Cuando escribimos cdigo GML, podemos poner una serie de


marcadores para acceder rpidamente a esas partes del cdigo. Desde esta opcin
de men podemos navegar con esos marcadores que hemos colocado. Tambin
podemos usar la combinacin de teclas <Mays>+>NUM>, donde <NUM> es un
nmero del 0 al 9 del teclado).

Ampliar o expandir el rbol de recursos: Si tenemos opciones del rbol de recursos,


carpetas o subcarpetas, que estn sin desplegar, con esta opcin las amplias todas
de nuevo.

Contraer rbol de recursos: Es parecida a la anterior, en este caso contrae todo el


rbol de recursos.

Mostrar informacin del objeto: esta opcin solo es para objetos, si tienes marcado
uno mostrar su informacin, sino la mostrar para todos los objetos. Podremos ver
el detalle y sus propiedades en un solo lugar. Puede ser muy til para depurar y
tener una visin general de cualquier objeto.

Configuracin de color de fondo transparente: desde aqu se configura la zona


transparente de los sprites, cuando se muestra desde el editor de sprites. Puedes
utilizar un patrn de bloques personalizables, o un color de relleno si seleccionas la
otra opcin disponible.

Men Recursos: en ese men podemos crear un recurso para cada uno de los tipos, as
como cambiar la configuracin del juego global, gestionar extensiones y aadir
constantes.


Crear: crea un nuevo recurso del tipo seleccionado. El formulario que se abrir ser
el editor correspondiente para cambiar las propiedades de ese recurso. Detallaremos
ms adelante cada uno de esos formularios.

Cambiar los ajustes globales del juego: Abre la ventana de estas opciones, dnde se
puede cambiar muchas cosas relacionadas con la forma en que queremos que se
comporte el juego. Lo detallaremos ms adelante.

34

www.aprendegamemaker.com

Seleccin de paquetes de extensin: Puedes gestionar los paquetes de extensin


que quieres en tu proyecto actual. Esta opcin no est en la versin gratuita de
Game Maker.

Definir constantes: se abrir una ventana para gestionar las constantes que
queremos utilizar en tu juego.

Men Scripts: aqu encontraremos opciones que se relacionan con el lenguaje GML que
escribimos en el juego.


Mostrar variables integradas: se abrir una lista con todas las variables que hay en el
sistema. Podremos ver si las podemos utilizar de forma global o de forma local. Ya
explicaremos en detalle el uso de variables en Game Maker Studio.

Mostrar funciones integradas: lo mismo que antes, pero en este caso muestra las
funciones que podemos usar en GML.

Mostrar funciones extendidas: si hemos instalado alguna extensin, mostrar sus


funciones y constantes que podemos utilizar.

Mostrar constantes: lo mismo que estamos viendo, pero es una lista de constantes
del sistema.

Buscar en Scripts: se abrir un formulario de bsqueda, que se puede utilizar para


buscar a travs de diferentes recursos para encontrar un trozo de texto o una
funcin especfica. Tenemos una serie de opciones a marcar: podemos elegir dnde
buscar ese texto, el tipo de filtro, si es una palabra completa o si tenemos en cuenta
mayscula y minscula en la bsqueda (lo que se llama Case Sensitive).

Comprobar nombre de recursos: en Game Maker Studio no podemos llamar de la


misma manera un sprite o un objeto, ya que entrara en conflicto. En esta opcin de
men podemos comprobar si se da este caso.

Revisar todos los scripts: ejecutar un chequeo a travs de todos los objetos,
instancias y rooms, que es dnde puedes poner lenguaje GML, para comprobar si
hay errores de escritura y los mostrar en una lista. Si haces click en cualquier error,
te abrir la ventana correspondiente para corregirlo.

Men Ejecutar: este men tiene opciones para ejecutar y probar tu juego. Tambin
podemos crear configuraciones. Todas estas opciones tienen botn en la barra de
herramientas.


Ejecutar en modo normal: ejecutar el juego igual que lo vera un usuario cuando se
lo instalase. De esta forma se pueden probar los juegos tal y como queremos verlo al
final.

35

www.aprendegamemaker.com

Ejecutar en modo depuracin: ejecutar el juego, pero abrir tambin una ventana
de depuracin con varias opciones para comprobar algunos datos y variables. De
cmo se depura el juego hablaremos ms tarde.

Limpiar build/cach: lo mismo que comentamos en el icono de la barra de


herramientas, ya que borra el cach de compilacin del juego.

Gestor de configuracin: para controlar varias configuraciones.

Configuraciones: aparecer una lista con todas las configuraciones disponibles, para
poder cambiarlas rpidamente.

Men Ayuda: detallamos las diferentes opciones que hay en la ayuda. Existen muchas
opciones que abre apartados concretos de la web oficial.


Contenido: Abrir el archivo de ayuda. Es la misma informacin que encontraremos


en docs.yoyogames.com.

Paquetes de extensin: mostrar un listado de los paquetes que tenemos en Game


Maker Studio, para mostrar el archivo de ayuda que pueda venir en cada extensin.

Noticias: abrir una ventana con las noticias de la web, las mismas que puedes
encontrar en http://yoyogames.com/news/ y que muestra al iniciar el programa, si
lo tenemos configurado de ese modo.

Sitio web: abre una ventana de tu navegador con la web www.yoyogames.com.

Foro: conectar directamente con el foro de Game Maker, cuya direccin es


http://gmc.yoyogames.com . Podemos encontrar y pedir ayuda sobre cualquier tema
relacionado.

Base

de

datos

de

conocimiento:

abrir

la

direccin

http://help.yoyogames.com/forums dnde encontraremos informacin oficial sobre


el uso de productos con Game Maker.


Notas de la versin: abre una pestaa de tu navegador para mostrar las notas de la
versin actual.

HelpDesk: abrir directamente la web http://help.yoyogames.com/home.

Informar de un error: desde aqu podemos enviar un error detectado en el programa


para que lo resuelvan.

Abrir Game Maker en el explorador: abrir la carpeta en el explorador de windows


donde est instalado.

Abrir proyecto en el explorador: abrir la ruta de la carpeta del proyecto actual en el


explorador de windows.

Actualizar licencia: si has comprado una nueva versin de Game Maker, como un
nuevo mdulo de exportacin, debes activarlo desde est opcin de men.

36

www.aprendegamemaker.com

Acerca de Game Maker: proporciona informacin de la versin que tenemos de


Game Maker, incluyendo la clave del producto y el usuario registrado.

Como veis, hemos explicado en detalle todas las opciones que podis ver en la pantalla
principal de Game Maker. Si tenis dudas en algunas de las opciones siempre podis volver
aqu para ver su significado. Antes de hablar de cada uno de los recursos, comentaremos las
Preferencias del programa, opcin File-Preferences, para la versin gratuita, para que
tengis en cuenta algunos detalles que nos pueden interesar

37

www.aprendegamemaker.com

Personalizar Preferencias en Game Maker Studio


Hemos visto anteriormente toda la interfaz que nos encontramos al iniciar el Game Maker
Studio. Antes de entrar en detalle en la configuracin de cada recurso, vamos a hablar de
cmo cambiar y personalizar algunas caractersticas globales del programa. Nos centraremos
en la informacin que aparece en la versin gratuita de Game Maker, como cambiar la
apariencia del programa, usar editores externos, informacin del servidor para los juegos y
otras preferencias. Ms adelante detallaremos las opciones que veramos en cada uno de los
mdulos de exportacin si lo comprramos, o si adquirimos la versin Master Collection.
Empezamos con la primera pestaa:

Pestaa General de Preferencias

Pestaa General de Preferencias que vemos en Game Maker Studio

Aqu encontraremos todas las opciones visuales de Game Maker, y algunos


comportamientos generales. Las opciones disponibles son:

38

www.aprendegamemaker.com

Mostrar ltimos juegos editados en el men Archivo: si se marca aparecen los ltimos 8
juegos editados.

Cerrar ventana de compilacin despus de ejecutar: al ejecutar el juego, ste se


compila para ejecutar en el mdulo de exportacin elegido, y este proceso se muestra
en una ventana de compilacin. Lo habitual es que esta ventana siempre est visible,
estara acoplada en la parte inferior de la pantalla principal, pero puedes preferir que
slo se muestre al compilar y luego que se cierre automticamente cuando haya
terminado.

Eliminar del disco duro lo que eliminemos del rbol de recursos: si se activa esta
opcin, cuando se quita un recurso desde el rbol, tambin se eliminar fsicamente. No
hace falta decir que esta opcin hay que usarla con mucha precaucin por la posible
prdida de datos.

No iniciar el juego a pantalla completa: por defecto, podemos anular que el juego se
ejecuta a pantalla completa y forzarlo a mostrarlo en una ventana, aunque lo tengamos
as configurado en el juego. Puede ser muy til para depurar.

Mostrar comandos en la ventana de compilacin: podemos elegir si mostrar ms o


menos informacin cuando se compila el programa. La opcin recomendada es tenerlo
activado.

Mostrar los comandos con flag activado: podemos activar o desactivar mensajes
detallados en la ventana de compilacin. Aunque la opcin anterior est activada,
podemos desactivar esta opcin si no queremos ralentizar la ejecucin del juego en las
pruebas.

Mostrar ventana de compilacin al principio: si queremos o no ver este formulario


cuando arrancamos el programa.

Activar copia de seguridad al guardar: con esta opcin podemos tener copias de
seguridad automticas cada vez que guardemos un proyecto. En la ruta de abajo
podemos ver donde se guardan y el nmero de copias simultneas que podemos tener.
Hay que tener en cuenta que la copia ms reciente es siempre la que tiene el nmero
ms bajo, en este caso siempre sera el nmero 0.

Rutas de directorio: podemos cambiar las rutas por defecto para guardar los ficheros
temporales, la cach de archivos y las copias de seguridad. Cada una de estas rutas tiene
un botn de borrar la informacin, por si nos puede interesar.

Mostrar noticias al inicio: establecer esta opcin al arrancar Game Maker.

Mostrar noticias en el navegador: podemos decidir si mostrar las noticias dentro del
programa o en nuestro navegador predeterminado.

39

www.aprendegamemaker.com

Siempre recargar archivos modificados: si tenemos esta opcin marcada, cuando Game
Maker detecte que ha cambiado algunos de los recursos en el disco, los cargar
automticamente.

Aumentar

automticamente

el

nmero

de

compilacin:

incrementar

automticamente el nmero de versin cuando creemos una versin definitiva del


juego.


Aadir versin y configuracin al nombre del archivo ejecutable: as aade


automticamente estas opciones cada vez que creamos un programa nuevo.

No mostrar logo de YoYoGames en la ventana principal: cuando se selecciona, la


imagen y enlace de YoYoGames no se mostrar al inicio.

No mostrar mensaje de confirmacin al cerrar un editor de cdigo: Evitaremos un


mensaje de guardar cambios al cerrar un cdigo o editor de scripts.

Iconos grandes en el rbol de recursos: Mostrar los iconos mucho ms grandes en el


rbol. Har falta reiniciar el programa para activar esta opcin.

Activar ventanas como pop out: es una manera de decir que no queremos todas las
ventanas dentro del rea, sino fuera de la ventana principal.

Limpiar automticamente los ficheros temporales al cerrar el programa: borrar toda la


carpeta Temp cada vez que cerramos Game Maker. Si trabajamos con varios proyectos o
muchos ficheros, podemos aprovechar mejor el espacio.

Eleccin de skin: podemos darle un aspecto diferente a la interfaz de Game Maker


(habra que reiniciar el programa). Las opciones que hay son GMGreen, GMHTML5 y
GM8, que corresponden con las versiones anteriores que ha tenido el programa. Yo,
como soy de la vieja escuela, prefiero elegir la opcin GM8.

Pestaa Formulario de Preferencias

40

www.aprendegamemaker.com

Pestaa formulario de Preferencias que vemos en Game Maker Studio

Estas opciones muestran algunos aspectos visuales de los editores que aparecen en Game
Maker Studio. Vemos que hay 4 secciones principales.

Formulario de sprite


Mostrar el origen de la imagen de sprite: si est marcado, veremos visualmente con una
cruz el origen, coordenadas x/y, en las propiedades del sprite.

Formulario de objetos


En las propiedades del objeto, mostrar sugerencias en las acciones: al recibir el ratn
alguna de las propiedades del objeto, veremos un pequeo texto de ayuda.

Tab por defecto para seleccionar: decidir cul es la pestaa de accin que queremos que
se muestre cada vez que abrimos un objeto (aunque tambin funciona con timelines).
Por ejemplo, si ponemos un 2 y abrimos un objeto, por defecto est la segunda pestaa
abierta (pestaa main1).

41

www.aprendegamemaker.com

Formulario de habitaciones/rooms


Al cerrar, eliminar instancias fuera de la room: si est marcada, el programa avisar si


detecta casos de instancias fueras del diseo de la room y podemos eliminarlos.

Recordar configuracin de habitacin al cerrar el formulario: todos los ajustes que


hemos cambiado en el editor de rooms se mantendr cuando vuelvas a editar la room.
Por ejemplo, si activamos o desactivamos la grid, su tamao, etc.

Grid activa en room por defecto: permite decidir si queremos ver esa GRID al crear o
abrir habitaciones.

Rellenar habitacin con color si no hay ninguno seleccionado: si creamos una room
nueva y no le ponemos ningn color por defecto, lo rellenar con el color que definimos
aqu. Puede ser til para ayudar a visualizar un nivel.

Mostrar minimapa en el editor de habitaciones: para activar o desactivar esta opcin en


el editor.

General


Abrir formularios maximizados por defecto: siempre abrira todas las ventanas con el
tamao mximo.

Tiempo de espera al abrir o cerrar un grupo de recursos: marcaremos el tiempo de


retardo en milisegundos cuando movamos algn recurso a un grupo o subcarpeta.

Pestaa Scripts y cdigo de Preferencias

42

www.aprendegamemaker.com

Pestaa de Scripts de Preferencias que vemos en Game Maker Studio

Todas estas opciones estn relacionadas cuando escribimos cdigo GML.




Operacin deshacer: en la primera opcin podemos ver cuntas veces podemos ejecutar
el comando Deshacer, por defecto est en 1000 opciones.

Sangra automtica: decidimos el nmero de espacios cada vez que tabulamos nuestro
cdigo.

Smart tabs o tabulacin inteligente: crea sangra automtica mientras escribimos


cdigo. Si movemos el cursor a una lnea que no tiene cdigo crea una tabulacin.

Permitir cursos ms all del final de lnea: permite colocar el cursor en cualquier
posicin de la pantalla del editor.

Mostrar opciones de autocompletado: mostrara una ventana emergente con una


sugerencia de las funciones y variables con las letras que comienzan lo que estemos
escribiendo. Debajo podemos gestionar el tiempo de retraso al aparecer la ventana, la
actualizacin y la comprobacin de sintaxis en milisegundos.

Mostrar ayuda de argumentos de la funcin: cuando escribimos una funcin, veremos


abajo los argumentos que hay que poner).
43

www.aprendegamemaker.com

Mostrar textos buscados: si buscamos un texto, te resalta las coincidencias del texto
buscado.

Mostrar nmeros de lnea.

Mostrar fragmentos de cdigo con F2: si pulsamos F2 veremos cdigo que podemos
insertar con el formato ya establecido.

Depuracin entrada IP manual: slo si tenemos problemas al conectarnos a nuestros


dispositivos.

Mostrar soporte en llaves: cuando escribimos cdigo y creamos las llaves { y }, podemos
ver cual corresponde al abrir y cerrar con ellas.

Comprobar cdigo mientras escribimos: nos va mostrando los errores que cometemos
mientras escribimos.

Activar negrita en palabras clave: permite darle este formato a todas las palabras clave
del sistema.

Utilizar un sistema de colores: podemos personalizar todas las opciones que tenemos
cuando escribimos cdigo GML, tanto el color como la fuente, a nuestro gusto.

Pestaa Editores de Preferencias

44

www.aprendegamemaker.com

Pestaa Editores de Preferencias que vemos en Game Maker Studio

Game Maker Studio tiene editores propios para todos los recursos, pero es posible que en
alguno de ellos estemos acostumbrados a otros programas o herramientas. Desde aqu es
posible elegir estos editores cuando lo queremos abrir en Game Maker, para seguir usando
estas herramientas como editor externo predeterminado. Los editores que podemos elegir
son:


Editor de cdigo: podemos elegir el editor de cdigo interno, yo lo recomiendo porque


es muy completo, o uno externo, como puede ser Notepad++.

Editor de imgenes: tambin podemos elegir un editor de imgenes externo, como


puede ser GIMP o Photoshop. la imagen se guardar como png.

Editor de sonido: Game Maker Studio no contiene editores de sonido internos, as que
utilizamos alguno externo tenemos que guardarlo como fichero wav o mp3. Un ejemplo
gratuito sera Audacity.

Visor SWF: si utilizamos ficheros Flash como sprites, podemos usar como visor un
programa especfico o un navegador.

Editor Spine: si tenemos sprites como ficheros del programa Spine, podemos decir aqu
la ruta para editarlos.

Pestaa Servidor Web de Preferencias

45

www.aprendegamemaker.com

Pestaa Servidor Web de Preferencias que vemos en Game Maker Studio

Podemos configurar el servidor web que Game Maker Studio utilizar. Yo recomiendo usar
las opciones por defecto. La nica configuracin que hay que tener en cuenta es con las
direcciones IP. Si utilizamos el rango por defecto, es posible que nuestro ordenador no est
en ese rango si lo tenemos incluido en una red local grande. Si es as, deberamos de aadir
nuestra ip en la lista.
Si queremos averiguar cul es nuestra ip,se puede hacer de la siguiente manera:


Pulsamos la combinacin de teclas Windows + R, y aparecer la ventana Ejecutar.

Escribimos cmd y pulsamos la tecla Enter, de esta manera abriremos la lnea de


comandos.

Escribimos ipconfig y pulsamos Enter.

Buscar donde pone ipv4, y la direccin IP es el nmero siguiente.

Hasta aqu hemos hablado de todas las opciones principales que podemos personalizar en
las Preferencias. Si os fijis en las imgenes, hay un montn de pestaas ms, como pestaa
Windows, Android, etc. La mayora de esas caractersticas son de exportaciones especficas o
para cuando se trabaja en grupo y no es accesible desde la versin gratuita o Estandard de la
46

www.aprendegamemaker.com

aplicacin. Ms adelante ya las comentaremos conforme probemos cada una de las


opciones que nos ofrece cada dispositivo, ya sea para un juego para Windows, Mac o un
mvil Android o un iPhone.
En el siguiente post empezaremos a dar forma a nuestro juego, empezando con la definicin
y caractersticas de los sprites.

47

www.aprendegamemaker.com

Una introduccin a los sprites en Game Maker Studio


Vamos a hablar de uno de los recursos ms importantes que existen en Game Maker Studio:
los sprites. Los sprites es la manera en que representamos los objetos dentro del juego. Los
sprites son imgenes, si son varias imgenes representarn movimiento con un bucle, si slo
tenemos una ser una imagen fija, que puedes crear con cualquier programa de edicin, o
conseguirlas por internet. Por ejemplo, si tenemos la siguiente secuencia de imgenes:

Imgenes separadas que crean una animacin

tenemos la siguiente animacin que se vera as en el juego.

Animacin de Sasquatch. Os lo imaginis porque no es posible verlo en un libro digital ^_^

Interesante, a que s? Todos los juegos necesitan animaciones de este tipo, para cualquier
cosa que te puedas imaginar: power-ups, personajes, enemigos, armas, etc. Tambin
necesitarn sprites que seguramente no contengan ninguna animacin, por ejemplo: muros,
suelo, escaleras, rboles, casa As que la gran mayora de los elementos que vemos en los
juegos son sprites, por eso es importante cuando los creamos de dedicarles toda nuestra
atencin, tanto o ms que cuando programamos con Game Maker Studio.

Aadir sprites con Game Maker Studio


48

www.aprendegamemaker.com

Dentro del programa tenemos muchos sprites que podemos utilizar para probar nuestros
juegos y hacer nuestros prototipos, pero YoYoGames nos avisa que no se pueden utilizar si
distribuyes tu juego definitivo. Pero ya hablaremos de cmo conseguir estos sprites en
mltiples sitios, y de herramientas de todo tipo para poder crearlos.
Ahora vamos a ver como se crean los sprites. Para ello, podemos utilizar el men del
programa, donde pone Resources Create Sprite o utilizar el botn que hay en la barra de
herramientas. Cuando lo hagamos, aparecer una ventana como sta:

Ventana de propiedades de un sprite

Vemos que en la ventana podemos editar un montn de propiedades del sprite. Arriba a la
izquierda podemos ponerle un nombre al sprite, yo aconsejo utilizar un nombre que
podamos identificar rpidamente en cualquier momento que lo queramos utilizar. Yo suelo
utilizar una nomenclatura parecida a esta:
spr_nombre_identificativo
Empiezo todos los sprites con spr_ y luego les pongo un nombre fcil de recordar,
normalmente en ingls (pero esto va a gustos). Los motivos son:


Tal y como hemos dicho, es fcil de identificar. Por el prefijo spr_ se que es un sprite.

Game Maker Studio obliga a que todos los recursos tengan nombres diferentes. Si por
ejemplo al sprite le llamsemos protagonista, cmo llamarais al objeto? NO lo

49

www.aprendegamemaker.com

podemos llamar igual. As que lo suyo sera ponerle al sprite spr_protagonista y al


objeto obj_protagonista.


Facilidad de lectura. Cuando empecemos a codificar en lenguaje GML, una de las cosas
ms importantes es que el cdigo est estructurado y sea fcil de entender. Ponerle
este tipo de nombres en el cdigo ayuda mucho para entender qu hace.

Sobre cmo ponerle nombre a los recursos ya hablaremos en otro post, aunque para gusto
los colores
Aunque le pongamos un nombre al sprite, internamente Game Maker lo identifica como un
nmero, lo comento porque cuando depuremos, controlemos los posibles errores que
pueda tener, es posible que los veamos y puede confundir.
Me he desviado un poco del tema, sigamos con las propiedades. Si queremos cargar un
sprite que tengamos en el ordenador, podemos hacerlo si le damos al botn Load Sprite.
Aparecer una ventana para elegir el sprite que queremos importar:

Ventana para aadir imgenes a un sprite

Este tipo de ventana la habris visto en muchos programas para seleccionar archivos. A la
derecha podemos ver una vista previa de la imagen e informacin bsica como su tamao,
aunque permite un par de opciones que nos pueda interesar. Si la imagen contiene zonas
transparentes, nos puede interesar quitarlas y hacerlas opacas con el check Make Opaque,
eliminar el color de fondo con el check Remove Background, por lo que se quedara
transparente, o suavizar los bordes de los sprites con el check Smooth Edges, que puedes

50

www.aprendegamemaker.com

conseguir mejorar la imagen. Una vez has elegido la imagen y posiblemente algunas de las
opciones, puedes cargarla con el botn Open.
Game Maker permite importar bastantes formatos de imagen. Algunas extensiones de
archivos pueden ser PNG, JPG, BMP y GIF, aunque con las ltimas versiones tambin permite
importar archivos SWF, formato FLASH, y JSON, del programa Spine.
Hay una serie de cosas que tienes que tener en cuenta a la hora de cargar imgenes:


Al cargar un gif animado, formato GIF, vers que ha separado todas las imgenes de la
animacin como subimgenes del sprite.

Si el nombre dle fichero acaba en _stripXX, dnde XX es un nmero, se considera que


esa imagen contiene un nmero XX de subimgenes una junto a la otra. Por ejemplo, la
siguiente imagen

Ejemplo de un fichero como strip

se llamar cosa_strip6.png, dnde al importarlo conseguiremos la siguiente animacin:

Animacin. Recuerda que en un libro digital no se ve ^_^




Si la imagen contiene una serie de subimgenes pero no queremos importarlas todas,


ya sea que solo queremos algunas o contiene varias animaciones, no lo cargaremos con
el botn Load Sprite. Por ejemplo, esta imagen:

Otro ejemplo de strip

seguramente nos interese cargar cada fila de imgenes en un sprite diferente, sera algo
como spr_player_up, spr_player_right, spr_player_down y spr_player_left. Esta opcin
la explicaremos ms adelante en otro post.

51

www.aprendegamemaker.com

Aunque admite varios formatos de imagen, yo recomiendo utilizar PNG, ya que es el


formato ms limpio. JPG utiliza un sistema de compresin de ficheros que hace que
pierda bastante calidad, y BMP es un formato bueno pero suele ocupar ms espacio.

Desde el botn Load Sprite, cuando aparece la ventana es posible cargar ms de un


fichero a la vez, los que componen la animacin. Se puede hacer de varias maneras, por
ejemplo:


Haciendo click con el ratn a una imagen, y si mantenemos pulsada la tecla <Ctrl>,
podemos hacer click en otras imgenes que ir aadiendo.

Lo mismo que lo anterior, pero si pulsas la tecla <Mayus>, elegir un rango entre la
primera imagen seleccionada y la ltima. Eso es muy til para elegir un nmero
grande de imgenes, seleccionando la primera y la ltima de la lista.

Si haces click en el explorador y arrastras el ratn, puedes elegir varias imgenes a


cargar.

Una vez hemos cargado el sprite, volvemos a la misma ventana de propiedades del sprite del
principio. Veremos que aparece la primera subimagen a la derecha de la pantalla, si
queremos movernos entre todas las imgenes del sprite podemos navegar pulsando en los
botones con flechas, donde pone Show. Vemos que aparece un nmero que corresponde
con el orden de cada subimagen. Tenemos que destacar que la primera empieza por 0, esto
es importante a tener en cuenta cuando desarrollemos. Un sprite de 10 imgenes ir desde
la subimagen 0 a la 9.
Una vez tengamos el sprite que nos interesa, podemos guardarlo con el botn Guardar del
men principal. Si pulsamos la tecla Ok, cerraremos la ventana con los datos que hemos
dejado por defecto.
Bueno, ya sabemos que son los sprites y como se aaden a nuestro proyecto de Game
Maker. En el prximo captulo hablaremos del resto de propiedades, que son todas muy
importantes y tambin veremos todas las opciones que nos ofrece el programa para poder
editar los sprites.

52

www.aprendegamemaker.com

Edicin de mscaras de sprites: como personalizarlas en Game


Maker Studio
Hemos visto cmo se importa un sprite para poder usarlo en nuestro juego. Hemos hablado
de la importancia de las mscaras para tratar los eventos de colisin, y si debemos de elegir
con colisin precisa o no para el rendimiento de nuestro proyecto.
Ahora veremos cmo personalizar una mscara de un sprite en Game Maker Studio.
Para ello, le damos al botn Modify Mask y aparece una ventana de Propiedades de la
mscara:

Editor de mscaras de Game Maker studio

La ventana est dividida en varias secciones con diferentes propiedades, y a la derecha


podemos ver una previsualizacin del sprite con su mscara, de un color gris oscuro. As
podremos ver todos los cambios que le iremos aplicando a la mscara, siendo ms fcil ver
cmo afecta la mscara mientras se juega.

Seccin Imagen de la mscara


En esta seccin veremos informacin bsica del sprite, la misma que tenemos en la ventana
de propiedades del sprite, como puede ser el alto y ancho del sprite, el nmero de imgenes
que contiene y la subimagen actual. Si nuestro sprite contiene varias subimgenes, nos
aparecern unos botones para movernos entre ellas y previsualizar la que nos pueda
53

www.aprendegamemaker.com

interesar. Tenemos tambin un check en la parte inferior para ver/esconder la mscara, y


unos botones de zoom para ampliar o reducir la vista previa. As podremos ajustar con ms
detalle el tamao de la mscara.

Seccin General de la mscara


Aqu veremos dos opciones que podemos cambiar, la primera opcin es el check Separate
collision masks, la misma opcin que en las propiedades del editor. As desde aqu tambin
elegiremos si queremos una mscara diferente por cada subimagen del sprite. Recordemos
que si lo combinamos con la opcin de colisin precisa podemos personalizar al detalle la
mscara. Otra opcin que vemos es la tolerancia con respecto a la transparencia de los
sprites. Con valores altos, si tenemos pxeles parcialmente transparentes se dejan fuera de la
mscara, mientras que si bajamos de valor tendr en cuenta estos pxeles. Estos valores
dependern mucho de la imagen del sprite y si tenemos estos pxeles que comentamos.

Cuadro delimitador de la mscara


El cuadro delimitador es como llamamos a la zona rectangular que una mscara de sprites
tiene. Slo los pxeles dentro de este cuadro son los que calcula automticamente para la
mscara y estn involucrados en el evento de colisin.

Aqu vemos la mscara que afectar a nuestro sprite

54

www.aprendegamemaker.com

Si hemos elegido Precise collision masks veremos que este cuadro ser diferente en cada
subimagen. Vemos que tenemos tres opciones: automtico, que lo calcula como hemos
comentado, imagen entera, que coger la altura y anchura real de la imagen
independientemente de si tiene zonas transparentes o no, o manual, que elegimos con los
valores que hay ms abajo dnde situamos ese cuadro. Tenemos valores de posicin, con
Left y Top, y valores de tamao con Right y Bottom. Tambin podemos dibujar el cuadro en
la previsualizacin de la mscara, simplemente haciendo click con el ratn, sin soltar, y
arrastrando hasta elegir el tamao deseado. Al dibujar, vemos que cambian los valores
numricos de posicin de la mscara que hemos comentado antes.

Seccin Forma de la mscara


Es posible que no nos interese una mscara cuadrada en nuestro sprite, sino que queremos
usar una forma diferente. En esta seccin podemos elegir algunas formas bsicas. La primera
opcin es para indicar que queremos colisin precisa, igual que en las propiedades del
sprite. La segunda opcin es para elegir una forma rectangular, la tercera para una forma
elptica y la cuarta para una en forma de diamante. Recordemos que podemos variar el
tamao de cada forma en la seccin que hemos comentado antes.

Conclusin final: como elegimos una mscara de colisin


Para finalizar, y a modo de resumen, vemos que es muy importante elegir como queremos
que se la mscara de colisin para utilizar en nuestros sprites. Podemos pensar que la opcin
ms lgica sera elegir una colisin precisa, pero elegir una mscara cuadrada o rectangular,
un poco ms pequea que el sprite real, notamos que mejora rpidamente el rendimiento
de nuestro juego. Podemos decir que en muy pocas ocasiones deberamos de elegir
mscaras de colisin precisas, adems de que se usen en el menor nmero de instancias
posibles.
Adems, con una mscara cuadrada podemos controlar cuando queremos que se produzca
el evento de colisin. Otro tema a tener en cuenta es que podemos elegir un sprite para
usarlo como mscara en un objeto, independientemente de su sprite o de los sprites que
cambiemos en mitad del juego.
55

www.aprendegamemaker.com

Edicin de sprites en Game Maker Studio


Hoy hablaremos de las posibilidades que nos ofrece Game Maker Studio a la hora de editar
sprites. Aunque hemos visto que podemos cargar sprites de ficheros externos, es posible
modificarlos, o incluso crearlos, desde la misma herramienta.
Para ello, creamos un sprite nuevo desde la ventana principal, con la opcin de men
Resources Create sprite. Si cargamos varias imgenes para un sprite, podremos editarlas si
le damos al botn Edit sprite. La ventana que abrir ser parecida a sta:

Ventana de edicin de sprites. Imagen de la ayuda online de YoYoGames

En el rea principal vemos que esta formado por todas las subimgenes que forman el
sprite. Todas las subimgenes tienen el mismo tamao, si hubiese una o varias de un tamao
ms pequeo, se ajustarn al tamao mximo.

Zona de previsualizacin del editor de sprites


Es posible obtener una vista previa del sprite, si marcamos el check Show Preview. Podemos
ver el sprite animado, as como una serie de opciones que afectan a la apariencia. As
obtenemos una idea de cmo se ver el sprite cuando lo apliquemos a nuestro juego.
Podemos cambiar la velocidad de la animacin en la caja de texto que pone Speed, podemos
cambiar el color de fondo o incluso asignar una imagen de fondo que tengamos cargada
(podemos elegir si ajustamos la imagen al tamao del sprite con el check Stretch

56

www.aprendegamemaker.com

background). Estas opciones slo son posibles si tenemos sprites con reas transparentes y
recordad: todo esto es para la previsualizacin, y no cambia ningn parmetro del juego.

Barra de informacin del editor de sprites


En la parte inferior de la pantalla veremos informacin bsica del sprite actual que estamos
trabajando. Veremos el total de frames del sprite, que son el nmero de subimgenes que
contiene, el tamao en altura y ancho y la memoria que ocupar, que es un clculo
aproximado basndose en el total de imgenes y su tamao.

Barra de herramientas del editor de sprites


En la barra de herramientas tenemos una serie de botones que nos permite manipular la
posicin y las subimgenes del sprite. Tenemos:

Confirmar: cierra el editor de sprites y guarda los cambios que hemos hecho.

Con este botn no hay ningn botn de confirmacin de cambios.

Nuevo sprite: crearemos un nuevo elemento del sprite. Pedir que

introduzcamos un alto y ancho base. Al ser un sprite nuevo, borrar los datos que
tengamos ya en el sprite.

Aadir un sprite de un archivo: Abrir la ventana para importar un sprite,

igual que en la ventana de propiedades del sprite. Si las dimensiones del sprite cambian
respecto a lo que tengamos ya en l, se mostrar una ventana con las siguientes
opciones:


Tamao: podremos elegir entre mantener el tamao original, usar el tamao de la


nueva imagen, por lo que cambiar de los sprites ya cargados, o usar el tamao
mximo que calcule. Esta ltima opcin es til si cargamos varias imgenes de
diferentes tamaos y no tenemos claro cual debera de usar.

Situacin: si cambia el tamao de los sprites, tanto de los que cargamos como de
los que ya tenemos, la imagen del sprite se rellenar con pxeles transparentes si la
ampliamos o se recortar si la reducimos. Podremos elegir dnde colocamos la

57

www.aprendegamemaker.com

imagen una vez ha cambiado, si la colocamos arriba a la izquierda, en el centro o si


se ajustar al nuevo tamao.

Guardar strip: grabar en un fichero png toda la animacin del sprite, para
poder usarse para otro juego o en un programa externo. Un ejemplo de como quedara
el sprite de animacin:

Ejemplo de strip cuando se guarda desde Game Maker Studio

Insertar frame vaco: aadir una subimagen en la posicin seleccionada del


sprite actual.

Aadir frame vaco: aadir una subimagen vaca al final de la lista de


subimgenes del sprite actual.

Deshacer: permite deshacer una o varias, hasta 16, acciones consecutivas.

Rehacer: si has usado el botn deshacer, puedes rehacer la accin para volver
al estado anterior.

Cortar: se usa para cortar una de las subimgenes. Esta imagen se queda en el
portapapeles y luego se puede pegar en el mismo sprite, otro sprite o incluso en otro
programa.

Copiar: lo mismo que la accin anterior, pero copiar la subimagen.

Pegar: este botn pegar cualquier imagen que ha guardado previamente en


el portapapeles (con las acciones de cortar o pegar). Si la imagen es diferente del sprite
actual, aparecer la misma ventana que al insertar imagen.
58

www.aprendegamemaker.com

Desplazamiento de imagen: estos botones movern la subimagen

seleccionada hacia la izquierda o derecha, cambiando el orden de las imgenes en la


animacin.

Editar subimagen: con este botn abriremos el editor de imgenes de Game


Maker Studio o del programa predefinido, si lo hemos asignado en las Preferencias del
programa.

Pre-multiplicar alpha: sirve para cambiar los canales de alpha de nuestro


sprite. No le deis importancia porque no notaris casi ningn cambio en vuestro sprite.

A continuacin explicaremos las opciones de men que nos permitir crear y editar de
muchas formas nuestros sprites.

Men Archivo del editor de sprites


En este men nos encontraremos con acciones relacionadas con la carga y el guardado de
nuestros sprites. Estas acciones son:


Crear desde strip: con esta opcin podemos cargar un strip que no sea estndar, es
decir, cargar parte de las imgenes que contiene, cambiar el orden, etc. La ventana que
aparece es la siguiente:

59

www.aprendegamemaker.com

Ventana para cargar strip como subimgenes

Vemos que hay muchas opciones para ayudar a ajustar el espacio que existe entre las
subimgenes dentro del fichero cargado. Estas opciones son:


Guardar como archivo PNG: guardar el sprite como un archivo png en formato strip.
Generar automticamente un nombre, con el formato nombre_sprite_stripXX, siendo XX el
nmero de subimgenes que contenga. Es posible modificar ese nombre, pero hay que
tener en cuenta que si queremos que Game Maker sea capaz de cargarlo en futuras
opciones debe conservar la terminacin tal y como hemos comentado.

Aadir desde archivo: aade una o varias imgenes desde el archivo seleccionado a
sprite actual. Si las imgenes no tienen el mismo tamao, aparecer una ventana para
decidir cmo colocar y modificar la imagen.

Crear desde archivo: con esta opcin podemos elegir un archivo de imagen para usarlo
como un nuevo sprite. Se pueden elegir varias extensiones, como BMP, PNG, JPEG,
dnde creara una sola subimagen, o GIF, dnde creara todas las subimgenes que lo
compone. Adems, si utiliza un strip cuyo nombre de archivo termina en _stripXX,
siendo XX un nmero, Game Maker dividir la imagen en tantas subimgenes como el
nmero indicado, creando as la animacin.

60

www.aprendegamemaker.com

Nuevo sprite: crea un nuevo sprite vaco, donde aparece una ventana para especificar
las dimensiones de altura y anchura del sprite. Estos datos son el tamao base para
crear todas las subimgenes.


Nmero de imgenes: total de subimgenes que queremos en nuestro sprite.

Imgenes por fila: Aqu especificamos el nmero de subimgenes que


encontramos en cada fila del archivo.

Alto y ancho de la imagen: el tamao en pxeles que tendr cada subimagen.

Celdas de desplazamiento horizontal y vertical: con los datos anteriores, vemos


que aparecen unos recuadros, que es dnde sacar cada subimagen para nuestro
sprite. Si queremos que estos recuadros no empiecen justo arriba a la izquierda,
podemos definir un margen de separacin, horizontal y/o vertical, para extraer la
subimagen. Esta opcin es muy til si queremos sacar varios sprites del mismo
fichero y slo queremos movernos entre filas o columnas.

Pxeles de desplazamiento horizontal y vertical: Es lo mismo que la anterior, pero


en vez de movernos con un tamao fijado por los valores anteriores, podemos
definir el margen en pxeles.

Separacin horizontal y vertical: estas dos opciones es para indicar que los
recuadros para elegir cada subimagen contiene un espacio entre ellos. Decidimos
en pxeles el tamao de estas separaciones para que no las tenga en cuenta en la
extraccin.

Aadir desde strip: es la misma opcin que la anterior, la nica diferencia es que
permite aadir imgenes con formato strip.

Cerrar guardando cambios: cierra el formulario guardando los cambios hechos al sprite.

Men Edicin del editor de sprites


Desde el men Edicin podemos hacer acciones relacionadas con la edicin de subimgenes
en el sprite. Casi todos estos comandos los encontramos en la barra de herramientas:


Deshacer: Deshace la ltima accin.

Rehacer: si hemos utilizado la opcin de Deshacer, podremos volver al estado que se


encontraba.

Cortar: Corta una subimagen en el portapapeles para su posterior uso.

Copiar: Copia una subimagen en el portapapeles.

61

www.aprendegamemaker.com

Pegar: Pegar cualquier imagen almacenada en el portapapeles como una nueva


subimagen. Si el tamao es mayor o menor que la actual, mostrar una ventana para
decidir cmo queremos actuar (la misma que al aadir un sprite desde archivo).

Borrar: borra la informacin de pxeles de la subimagen seleccionada, y lo reemplaza


por el color elegido. Tambin es posible ajustar la transparencia y seleccionar si se
aplica a todas las subimgenes o no.

Eliminar: elimina la subimagen seleccionada del sprite.

Mover a la izquierda: mueve la subimagen seleccionada de su posicin actual hacia la


izquierda.

Mover a la derecha: igual que la anterior, pero hacia la derecha.

Aadir vaco: aade una nueva subimagen al final de la secuencia.

Insertar vaco: lo mismo que la anterior, pero en vez de aadirla al final lo aade antes
de la subimagen seleccionada.

Editar: edita la subimagen usando el editor de imagen de Game Maker Studio.

Configurar transparencia de fondo: podemos indicar que color o colores usaremos para
decidir cual es la transparencia de los sprites. Hay que tener en cuenta que solo afecta a
cmo vemos el sprite en el editor, as que no afecta al fichero en s.

62

www.aprendegamemaker.com

Men Transformar en el editor de sprites


Con estas acciones podemos cambiar la forma y el tamao de los sprites. Las opciones de
transformacin que tenemos son:


Mover: abrir una ventana que nos permitir mover la actual subimagen, o todas ellas
si lo marcamos, una cierta cantidad. Con los checks de wrap, podemos decidir que los
pxeles que desaparecen en un lado de la imagen aparezca en el otro lado, tanto vertical
como horizontalmente.

Espejo: con esta opcin podemos reflejar la imagen seleccionada, o todas. Tambin
podemos decidir si voltearla verticalmente.

Rotar: permite girar la imagen. Existe botones para las opciones ms comunes, que son
90, 180 y 270. Tambin permite poner cualquier ngulo entre 0 y 360. Si no
cambiamos el tamao del sprite, es posible que perdamos parte de la imagen al girarla.

Escalar: la ventana que abrir esta accin que permite cambiar la escala de la imagen. Al
igual que si rotamos, si escalamos con valores grandes podemos tener pxeles que se
queden fuera del lmite de la subimagen, y no cambia su tamao sino que se corta.

Sesgar: este comando permite sesgar la imagen. Sesgar horizontalmente una imagen
significa que si cogemos la imagen como cuadrada, los extremos de arriba, izquierdo y
derecho, se movern estos puntos a los lados.

Cambiar tamao del canvas: con este comando podemos cambiar el tamao de todas
las subimgenes del sprite. Podemos especificar el alto y el ancho nuevo, tanto por
pxeles como por porcentaje, adems de marcar si queremos mantener el aspect ratio
(o proporcin, para que no se deforme la imagen, as como mantener la posicin de
origen. El cuadro con los botones con flecha indicar la posicin de la imagen actual
respecto al nuevo tamao.

Estirar imagen: si estiramos la imagen, cambiaremos el tamao total del sprite,


estirando o encogiendo la imagen (con la opcin anterior, rellenbamos con pxeles
transparentes). Tambin tenemos las opciones de mantener la proporcin y el origen. Al
cambiar la imagen, podemos decidir la calidad de la imagen final.

Crop:

es

una

herramienta

que

sirve

para

recortar/ampliar

las

imgenes

automticamente. Poniendo un nmero positivo de pxeles crearemos un marco


transparente alrededor, si el nmero es negativo cortar la imagen.

Men Imagen del editor de sprites

63

www.aprendegamemaker.com

Aqu vemos una serie de opciones que permite cambiar los colores, transparencia y otras
formas de las subimgenes de los sprites. Todas estas opciones podemos elegir si hacerlas a
una subimagen o a todas, marcando el check correspondiente.


Ciclo izquierda y ciclo derecha: se utiliza para cambiar el orden en que aparecen las
subimgenes, podemos elegir un sentido u otro.

Escala de grises: convierte una imagen de color en escala de grises.

Colorear: puedes cambiar la tonalidad de la/s imagen/es. Hay una barra deslizante, o un
cuadro de texto, para darle un valor exacto.

Colorear parcialmente: aqu podemos cambiar el color de parte de la imagen.


Tendremos dos valores de matiz para modificar, adems de un valor de tolerancia que
podra permitir marcar colores especficos.

Intensidad: cambiar la luminosidad y la saturacin del sprite.

Invertir: invertir los colores de la imagen.

Hacer opaco: cambia todos los pxeles transparentes por un color.

Eliminar un color: podremos elegir un color de la subimagen y cambiar todos sus


pxeles a transparentes. Podemos especificar la tolerancia para definir el rango de
pxeles que har la accin.

Suavizar bordes: permite suavizar los bordes de la parte opaca de la imagen.

Opacidad: con esta accin podemos definir la transparencia de la imagen del sprite con
el valor que elijamos.

Establecer alfa desde archivo: funcin que permite combinar la imagen de un fichero y
asignarla a los pxeles de transparencia del sprite. Es recomendable que el fichero
elegido tenga el mismo tamao que el del sprite, sino modificar la imagen para que
encaje dentro.

Fundido: aqu se especificar un color y un nmero para descolorear la imagen del


sprite hacia ese color.

Desenfocar: esta opcin suavizar la imagen. Tenemos opciones como elegir la cantidad
de desenfoque, difuminar la informacin de color y/o la transparencia. Si elegimos slo
los valores de transparencia podramos suavizar los contornos de la imagen.

Afilar: se utiliza para afinar ciertos detalles dentro de una imagen. Realza los bordes
dependiendo de los valores, sutil, fuerte o especial, y tiene en cuenta colores y/o
transparencia.

Crear contorno: dibuja una lnea o contorno alrededor de la imagen, pudiendo elegir
color y grosor. Tambin podemos elegir si colocar la imagen o no, o dejar solo el

64

www.aprendegamemaker.com

contorno. Finalmente, podremos decidir si suavizar el contorno para darle una


apariencia ms redondeada.


Sombra: crear una sombra de la imagen, con su color y transparencia, que podremos
colocar en la posicin que queramos. Tambin tiene un check para indicar si la
queremos borrosa o no.

Iluminar: es como la herramienta de contorno, creando un borde de un color elegido


alrededor de la imagen, eligiendo adems brillo y opacidad.

Botonear: con ese nombre tan curioso, lo nico que hacen es dar la apariencia de un
botn en el sprite. Podemos elegir color y efecto de opacidad, y si queremo es un efecto
suave para una apariencia ms redondeada.

Relleno degradado:

eligiendo dos colores, crea un degradado entre ellos,

parametrizando tambin la opacidad y el tipo de degradado. Al elegir el check de


cambiar transparencia, tambin lo genera con los pxeles transparentes.

Men Animar del editor de sprites


En el men de animacin, podemos crear nuevos sprites fuera de las subimgenes que ya
tenemos. Hay muchas opciones para crear efectos, y es bueno probarlas todas porque las
combinaciones buenas se hace cuando usamos varias acciones juntas.


Longitud: podemos cambiar la longitud de la animacin, para ello, Game Maker Studio
duplica las subimgenes desde el principio hasta el final, repitindose hasta alcanzar el
nmero que hemos elegido.

Extender: lo mismo que la anterior, copiar o reducir subimgenes hasta el nmero


que hemos puesto al principio. Si aumentamos el nmero de fotogramas la animacin
ser ms lenta, si lo disminuimos haremos que sea ms rpida.

Inverso: invierte el orden de los sprites para que la animacin se haga hacia atrs.

Aadir inverso: lo mismo que lo anterior, pero en vez de modificar la animacin la


duplica y la aade al final. Hay que tener en cuenta que se repetir la primera y ltima
imagen con esta accin, si queremos una animacin suave es recomendable borrar una
de ellas.

Secuencia de translacin: con esta opcin moveremos la imagen dentro de la


subimagen. Hay que indicar el nmero de frames y cuanto queremos moverlo
horizontal y verticalmente.

Secuencia de rotacin: es una animacin donde la imagen gira. Podemos elegir el


sentido hacia dnde gira, el nmero de frames y la cantidad total para mover.
65

www.aprendegamemaker.com

Colorear: crea una animacin que convierte una imagen a un color elegido.

Fundido a color: Crea una animacin que convierte una imagen, hacindola
desaparecer, a un color concreto.

Desaparecer: coge una imagen y la hace desaparecer, jugando en la animacin con su


opacidad.

Reducir: Reduce una imagen indicndole la direccin, izquierda, derecha, arriba, abajo o
centro).

Crecer: ampla una imagen indicando la direccin (las mismas que en el anterior caso).

Aplanar: aplana una imagen con direccin.

Aumentar: lo mismo que el efecto anterior, pero al contrario. Tambin tiene direccin
hacia el centro, izquierda, derecha, arriba o abajo.

Superposicin: esta accin elige un fichero seleccionado y lo superposiciona con el


sprite. Si el archivo es solo una imagen, se repetir en cada subimagen, si es un strip,
recordemos que es una imagen que su nombre termina en _stripXX.png, tratar cada
subimagen del strip y la colocar en cada subimagen correspondiente del sprite.

Metamorfosis: eligiendo un archivo, transforma mediante animacin el sprite actual al


fichero seleccionado. Se recomienda que el nmero de subimgenes del fichero y del
sprite sean iguales, ya que juega con las transparencias de las imgenes para la
transformacin.

66

www.aprendegamemaker.com

Editar imgenes del sprite en Game Maker Studio


Hemos visto hasta ahora como cargar sprites y hacer algunas modificaciones en sus
animaciones, pero tambin es posible crearlos y modificarlos desde Game Maker Studio.
Para ello, el programa tiene su propio editor de imgenes, tanto para sprites como para
fondos. Para llamar al editor de una subimagen de un sprite, la seleccionaremos y
llamaremos al botn Editar Imagen, o al men Imagen-Editar Imagen.
El editor que vemos est pensado para realizar cambios en las imgenes, no para crear
sprites y fondos desde cero. Este editor tiene muchas funcionalidades, pero quizs no sea
suficiente para las opciones que puedas necesitar, en cuyo caso es mejor usar un programa
externo, guardar las imgenes como PNG y cargar los archivos como sprites. Si en cualquier
momento queramos asociar las subimgenes del sprite a este programa externo, podemos
hacerlo en las Preferencias del programa, tal y como hemos visto.

Como es el editor de imgenes de Game Maker Studio


Cuando arrancamos el editor de imgenes, tendremos una ventana parecida a sta:

Editor de imgenes de Game Maker Studio

Vemos que la imagen que vamos a modificar ocupa la parte central de la ventana, con
herramientas de edicin a la izquierda y opciones variadas alrededor de ella. Tenemos
67

www.aprendegamemaker.com

tambin mens superiores y en la parte inferior tenemos una barra de informacin con
algunos datos que comentaremos ms adelante.

Mens en la edicin de imgenes


Los mens superiores que encontramos en esta ventana son casi iguales a los del editor de
sprites. Principalmente, son iguales los men de Edicin, Imagen y Transformar. La principal
diferencia es que aqu modificamos la subimagen que estamos viendo, y en el editor de
sprites podamos elegir si modificar la subimagen seleccionada o todo el sprite entero. El
men Archivo es similar tambin, pero con menos opciones y algunas diferencias:


Nuevo: crea una nueva subimagen desde cero, con las mismas caractersticas de tamao
que hemos definido en el sprite.

Guardar como archivo PNG: guarda la imagen actual como un fichero png, pero solo el
frame que estamos viendo.

Imagen Anterior, imagen siguiente: si tenemos un sprite de varias subimgenes, desde


aqu podemos navegar entre los diferentes frames, para hacer ms fcil la edicin.

Guardar / Cargar paleta: si hemos modificado la paleta actual, porque tenemos colores
personalizados, podemos guardar esta combinacin en un fichero para poder usarla y no
ver la que trae por defecto el programa

Cerrar guardando cambios: Cierra la ventana de edicin con los cambios que hayamos
realizado.

Otro men propio que tiene el editor de imgenes es el Men Ver. Este men contiene:


Alejar: Reduce la vista previa de la imagen para ver ms zona del sprite.

Sin zoom: ajusta el nivel de zoom al tamao real de la imagen.

Acercar: Aumenta la vista previa de la imagen, viendo menos zona del sprite.

Alternar Grid: con est opcin podemos mostrar u ocultar una rejilla transparente de
lneas, que nos ayuda para las opciones de dibujo.

Opciones de Grid: nos permite configurar la grid que hemos comentado anteriormente.
Podemos definir el tamao de la cuadrcula de pxeles que queremos utilizar, el color de
las lneas de la grid y la manera de mezclar las lneas. La opcin ms interesante es el
check de alinear a la grid, que hace que todo lo que dibujemos se ajuste a estas lneas.

Mostrar vista previa: Activa o desactiva la vista previa del sprite. Aparecer una ventana
de vista previa en la ventana principal, si hacemos doble click en ella podremos cambiar
la escala entre 1x, 2x, y 3x. As podremos ver una imagen de como va quedando nuestro
sprite.

Configurar fondo de transparencia: mostrar una ventana donde nos permite elegir un
color, o un rango de colores, para definirlo como pxeles transparentes.
68

www.aprendegamemaker.com

Barra de herramientas de la edicin de imgenes


La barra de herramientas cuenta con una serie de comandos que son equivalentes a los ya
explicados en los mens. Veremos las mismas opciones del men Archivo y del men Ver.

Herramientas de dibujo
Las herramientas de dibujo nos permiten seleccionar diferentes tamaos de pinceles,
regiones, dibujar formas, etc. Podemos utilizarlos haciendo click en cada una de las opciones
y luego manteniendo el botn del ratn en la imagen. La lista completa de cada herramienta
es:

Lpiz: con esta opcin podemos pintar sobre la imagen, usando el botn izquierdo
o el botn derecho sobre ella, dependiendo del color que queramos elegir. El tamao del
rea que pinta se puede ajustar mediante la seleccin de unos de los tamaos que
aparecen abajo. Otras opciones se hacen combinando con las teclas: si tenemos pulsada
la tecla <Shift>, solo podremos hacer lneas horizontales o horizontales, con la tecla
<Ctrl> el puntero cambia de opcin, que es el Selector de Color, para adquirir el color
pulsado.

Aergrafo: Funciona igual que el lpiz, con la diferencia que el puntero es


parcialmente transparente en los bordes con una cierta textura. Puedes pintar tanto con
el botn izquierdo como el derecho del ratn, depende del color que elijamos, y se
puede seleccionar su tamao en las opciones de ms abajo. Tambin existe una dureza
del pincel, para definir la transparencia de los bordes. Las combinaciones con teclas
comentadas en lpiz tambin funcionan con el aergrafo.

Goma de borrar: con esta accin podemos borrar parte del sprite. Funciona como
el aergrafo, pero borrando lo que est debajo del ratn. Cuanto puede borrar
depender del ajuste de opacidad que aparece, con un rango de 0, que no borra nada, a
255, que borrar todo por completo. Los valores de en medio har que el borrado sea
ms o menos transparente.

Selector de color: con esta herramienta podemos adquirir, con el botn izquierdo
o derecho del ratn, el color que hay justo debajo de la imagen. Hay que destacar que el
valor de Opacidad tambin lo coge.
69

www.aprendegamemaker.com

Dibujar lnea: se utiliza para dibujar lneas rectas. Podemos elegir el grosor de la
lnea, adems de si queremos la lnea con forma de flecha. Podemos marcar la opcin
Suavizar para que las lneas estn parcialmente transparentes.

Dibujar polgono: con esta herramienta puedes dibujar un polgono cerrado.


Empiezas haciendo clic en el primer vrtice, arrastrar o hacer click para el segundo
vrtice y as hasta hacer la forma que queremos. Puedes terminar el polgono pulsando
otra opcin de las Herramientas de Dibujo o presionando la tecla <Esc>.. Tiene las
mismas combinaciones de teclas para dibujar lneas horizontales, verticales o de 45.
Tambin puedes suavizar los bordes.

Dibujar rectngulo: este comando dibujar un rectngulo, pulsando la tecla


<Mays> dibujar un cuadrado. Con la tecla <Ctrl> dibujar el rectngulo con el centro
dnde se hizo clic. Las opciones que tenemos al dibujar es la configuracin de la lnea
exterior, y si el rectngulo puede ser rellenado con un color o no. Tambin existe una
opcin para poder suavizarlo.

Dibujar elipse: igual que con la opcin de rectngulo, pero dibujar una elipse o
un crculo si dejamos pulsada la tecla <Mays>. Tiene las mismas opciones de grosor de
lnea y rellenado.

Seleccionar una regin: podremos seleccionar una regin cuadrada para copiar,
cortar o mover esa zona. La seleccin se hace haciendo clic en una zona y arrastrar con el
ratn, dnde vemos un rea rectangular por una lnea de puntos. Puedes aumentar la
seleccin actual si tenemos la tecla <Mays> pulsada, o eliminarlas con la tecla <Ctrl>.
Para cancelar la accin, se puede hacer con la tecla <Esc>.

Seleccin con varita mgica: en este caso, al hacer clic sobre un pxel, busca todos
los pixeles del mismo color cercanos, dependiendo de la tolerancia seleccionada. Las
combinaciones de tecla son las mismas que con la seleccin de regin.

Seleccin con pincel: aqu podemos seleccionar un rea simplemente dibujndola.

Aadir texto: Podremos aadir texto en la imagen, aparecer una ventana donde
escribiremos el texto que transformar en imagen. Podemos utilizar el smbolo # para
indicar un salto de lnea. Una vez introducido el texto, podemos moverlo arrastrndolo

70

www.aprendegamemaker.com

con el ratn. Si decidimos cambiar de texto, podemos haciendo clic con el botn
derecho. En las opciones que aparece debajo de la caja de herramientas, podremos
cambiar la fuente, color y alineacin del texto.


Bote de pintura: Haciendo click en la imagen, coger todos los pxeles del mismo
color, dependiendo de su valor de tolerancia, y cambiar el color con el que tengamos
configurado. Tambin podemos elegir si rellena los pxeles con color o tambin los
pxeles transparentes prximos.

Cambiar color: cambia el color al hacer clic en la imagen, usando todos los pxeles
que hay alrededor por tolerancia. Tambin podemos elegir si usamos solamente color o
tambin los pxeles transparentes.

Color y Herramientas de mezcla


En la parte derecha de la ventana, tenemos todas las herramientas de color. En la parte
superior tenemos etiquetados dos colores, el de la izquierda y de la derecha, que
corresponden con los colores que asociamos a los botones del ratn. As establecemos los
colores a las Herramientas de dibujo que hemos comentado anteriormente.
En la parte inferior tenemos un catlogo de colores bsicos para elegir, y si queremos
personalizar alguno, lo podremos hacer con el selector que se encuentra abajo. Podemos
tambin ajustar la opacidad, siendo el valor 255 totalmente opaco y 0 totalmente
transparente.

Imagen de previsualizacin
Muestra una imagen del sprite de cmo se vera en el juego. Si hacemos doble click,
podemos cambiar el zoom a 1x, 2x y 3x, as veremos con mejor nitidez como va quedando.
Podemos activar o desactivar esta ventana tal y como hemos dicho en el men Ver.

Opciones de capa de cebolla: para calcar tus frames


Con esta opcin, podemos superponer con frames anteriores del sprite y utilizarlos como
plantilla para dibujar nuestro sprite. Elegimos primero la transparencia del frame o frames
que superponemos. Luego podemos superponer uno o varios frames, con las opciones de
forward o backward elegimos cuantos frames queremos antes o despus del frame actual.

71

www.aprendegamemaker.com

Herramientas de dibujo avanzada


Aparte de todas las herramientas que hemos mencionado, tenemos una serie de
herramientas avanzadas para hacer sprites o fondos. Veamos estas herramientas.

Pgina de repuesto
La verdad es que no aparece esta opcin en ningn sitio de la ventana, ni en el men ni en el
cuadro de Herramientas. Solo podemos activar y desactivar esta opcin pulsando la tecla
<j>. Si lo activamos pulsando <j>, nos aparece, dentro de la misma imagen, la opcin de
crear imgenes temporales que no se quedan guardadas en el propio sprite. As podemos
dibujar cosas sin miedo de modificar la imagen real. Por ejemplo, podemos copiar una
imagen, activar la opcin, pegarla y retocarla. SI al final nos gusta el resultado, podemos
volver a copiarlo y pegarlo definitivamente.
Una cosa a tener en cuenta es que est pgina no se queda guardada en el sprite, una vez lo
cerremos perderemos toda la informacin de esta imagen de pruebas.

Paleta de colores personalizada


Cuando abrimos el editor de imagen, nos parece una serie de colores predefinidos en la
paleta de colores. Aunque pueda mostrar los colores ms comunes, es posible que no nos
interese para la creacin de nuestro sprite. Si haces click con el botn izquierdo o derecho
del ratn, seleccionaremos estos colores para su uso con estos botones. Si hacemos click con
el botn del medio del ratn, nos aparecer una ventana de personalizacin de colores.
Podemos cambiar a elegir nuestro color a nuestro gusto, y se cambiar en nuestra paleta
principal cuando le demos al botn Aceptar.

Paleta de colores que podemos personalizar

72

www.aprendegamemaker.com

Una vez hemos modificado nuestro paleta, podemos guardarla tal y como hemos visto desde
el men Archivo, creando un fichero con extensin PAL. Aunque es posible que sea una
extensin utilizada en otros programas de dibujo, solo funcionar con Game Maker Studio.

Borrar color
En la caja de Herramientas, hemos visto diferentes acciones para dibujar asociadas al color, y
el comando Goma de Borrar para eliminar un color. De esta manera, podemos ir cambiando
entre las diferentes acciones para dibujar y borrar.
Una manera ms prctica para el borrado es seleccionando la goma de borrar con el botn
derecho. De esta manera, vemos que el color de seleccin para el botn derecho del ratn
muestra como un tablero de ajedrez, para indicar que no hay color seleccionado.

Esta opcin de borrado es muy til!

As podramos dibujar con el botn izquierdo y borrar con el boton derecho sin depender de
elegir la accin en la caja de Herramientas.
Y hasta aqu hemos visto todas las opciones de sprites. En prximos posts, veremos como se
utilizan en los objetos, que son los que realmente le darn movimiento y diversidad a
nuestro juego..

73

www.aprendegamemaker.com

Fondos en Game Maker Studio


Los fondos en Game Maker se utilizan para aadirlos a nuestras rooms de nuestro juego.
Pueden ser imgenes grandes para colocarlas directamente, o tambin estos ficheros
pueden estar compuestos de muchas imgenes que podemos usarlas independientemente.
Esta composicin de imgenes se llaman tiles, podemos colocarlas cada una en nuestro
room y as poder pintarlas para crear diferentes diseos visuales partiendo de la misma
imagen.
Para crear un recurso nuevo en nuestro proyecto, vamos a los siguientes opciones para
poder crearlo, una de ellas es al men Resource Create background. Nos aparecer una
ventana como sta:

Ventana Propiedades de fondo

Igual que en cualquier recurso que aadimos, le debemos poner un nombre identificativo y
nico. Recomiendo usar el prefijo bck_. Debajo del nombre, podemos cargar un fichero con
el botn Load background. Se abrir una ventana para seleccionar archivos, con las
extensiones de grficos ms comunes, como PNG, JPEG, GIF y BMP. Podemos elegir en esa
opcin si queremos la imagen opaca, dnde eliminara, si tiene, los pxeles transparentes.
Una vez elegido el fichero y marcado las posibles opciones, le damos a Abrir. Veremos una
previsualizacin de nuestro archivo en la ventana de propiedades del fondo.
74

www.aprendegamemaker.com

Hay que recordar que el uso de imgenes muy grandes puede perjudicar el rendimiento de
nuestro juego, ya que tiene que cargar toda la imagen para poder mostrarla. Quizs en un
juego para Windows no sea muy importante, pero si hablamos de dispositivos mviles o
HTML5 tenemos que configurarlo de la manera ms ptima, como partir el fondo en varios
ficheros o usar tiles.

Editar fondos en Game Maker Studio


Para editar nuestros fondos, Game Maker Studio tiene su propio editor de imgenes,
aunque quizs te interese usar un programa externo para modificarlas. Las herramientas que
incorpora el programa son las mismas que cuando modificbamos subimgenes en nuestros
sprites, as que para ver en detalle todas las opciones podis verlo en el Editor de imgenes.

Fondos como tiles


Tal y como hemos comentado, es posible que tengamos en un fondo una composicin de
varias imgenes para poder utilizar individualmente. A esto se le llama tiles, su traduccin
literal sera baldosas, y un ejemplo de fichero sera:

Ejemplo de un fichero en formato de baldosas. Cortesa de Kenney.

75

www.aprendegamemaker.com

De esta manera, podemos agregar estas subimgenes en los fondos de nuestras rooms para
crear diferentes niveles y efectos, adems que el rendimiento de proceso es mucho ms
ptimo. Para utilizar un fondo como tile, marcamos el check Use as tile set y la ventana de
propiedades cambiar de esta manera:

Al marcar la opcin en las propiedades del fondo, nos aparecen opciones ocultas para tratar el fondo como tiles

Nos aparece una serie de propiedades nuevas que podemos ajustar para todo el conjunto
del mosaico, como el ancho y alto de cada baldosa (fijaros que no podemos tener baldosas
de diferente tamao en el mismo recurso), desplazamiento o margen en pxeles, horizontal y
vertical y si existe separacin entre baldosas, tambin en pxeles.

Uso de tiles en las rooms


Si queremos usar los fondos, tanto en imagen completa o divididos para pintarlos tiles, se
usan solamente en las propiedades de cada room. Si queremos algn fondo o elemento
animado, debemos de crearlos como sprite y aadirlos en algn objeto, aunque no haya
ninguna interaccin con l.
Para aadir un fondo se hace desde la pestaa Backgrounds del editor de rooms. Estos pasos
los explicaremos en detalle cuando hablemos de como gestionar rooms.

Conclusin
Hemos visto uno de los recursos ms fciles de usar, ya que simplemente se agregan a
nuestro proyecto y luego elegimos en qu nivel utilizarlo. Es posible que un fondo contenga
76

www.aprendegamemaker.com

varias imgenes que podemos colocar por separado, con la posibilidad que con un mismo
recurso podamos utilizarlo en varios niveles.

77

www.aprendegamemaker.com

Sonidos y msica en Game Maker Studio


Sabemos que los sonidos son un recurso muy importante en los videojuegos, ya que aportan
una riqueza que complementan a los grficos que podamos crear. Es por eso que vemos
ltimamente muchos estudios indies que aportan la banda sonora del juego que crean,
adems que esta msica y sus efectos son creados por profesionales o gente especializada.
Lo dicho, un buen apartado sonoro aumentar la calidad final de nuestro juego.
Vamos a aprender como aadir estos recursos a nuestro proyecto de Game Maker Studio.
Para aadir un sonido, podemos ir a nuestro rbol de recurso, botn derecho, a la barra de
herramientas o al men Resource Create Sound. Cualquiera de estas opciones abrir la
siguiente ventana:

Ventana de Propiedades de sonido

Cargaremos un fichero de sonido con el botn Load Sound, dnde aparecer una ventana
para seleccionar el archivo de sonido. Los ficheros soportados son ficheros con extensin
WAV o MP3. Habitualmente, los ficheros WAV se utilizan como efectos de sonido, mientras
que los ficheros MP3 se utilizan como msica de fondo, ya que Game Maker solo permite
una a la vez. Aunque utilizar unos u otros da un poco igual, hay que tener en cuenta que los
ficheros MP3 tienen ms proceso de CPU, ya que tienen que ser descodificados, mientras
que los archivos WAV se pueden ejecutar instantneamente.

78

www.aprendegamemaker.com

Una vez que tengamos cargado el fichero, veremos su ruta actual cuando lo hayamos hecho,
podemos reproducirlo con el botn correspondiente. La reproduccin se repetir
infinitamente, hasta que la paremos con su botn correspondiente. Tambin tenemos la
posibilidad de cambiarle el volumen si lo creemos necesario, aunque ahora explicaremos las
otras caractersticas en detalle.

Grupos de audio
Al igual que con los sprites, Game Maker Studio permite recientemente asignar un sonido a
un grupo especfico. La diferencia es que con los sprites la carga se hace automtica, y aqu
tenemos funciones especficas para gestionar nosotros que ficheros cargamos o liberamos
para hacer ms eficiente la memoria. Todas estas opciones solo estn para las versiones de
pago de Game Maker.

Compresin
Todas las opciones que hemos visto ahora son para los ficheros de audio sin comprimir. Sin
embargo, podemos comprimir el audio si nos interesa. De esta manera, comprimiremos
todos nuestros ficheros a formato ogg. Estos ficheros ocupan muy poco espacio en disco y
son ideales a la hora de distribuir nuestro juego.

Streaming
Si hemos elegido audio comprimido, podremos personalizarlo si lo queremos en streaming o
no. Un sonido streaming se carga y se ejecuta en tiempo real desde el disco. Esta opcin es
ideal para la msica de fondo, aunque puede ocasionar que el juego se pause por la carga
del fichero, por eso no es recomendable para efectos de sonido que no necesitan mucho
proceso y pueden cargarse fcilmente en memoria.

Calidad y volumen
Si hemos cargado un fichero OGG o MP3, aparecer un control deslizante para cambiar la
calidad de codificacin, por lo tanto repercutir en el sonido final. Como es obvio, cuanta
ms calidad le pongamos ms ocupar el fichero, y aumentar la calidad en un fichero que no
la tenga no mejorar notablemente el juego, adems de hacerlo crecer intilmente.
Tambin podremos ajustar el volumen del sonido, aunque existen funciones para poder
hacerlas mientras ejecutamos el juego.

Opciones de destino
79

www.aprendegamemaker.com

En esta seccin definimos la conversin del fichero final para nuestro juego. Ajustando estas
opciones, Game Maker comprimir los ficheros con estos parmetros. La configuracin que
se recomienda por defecto es 16 bits, 44100 KHZ y 192 kbps, aunque podemos cambiar
cualquiera de estos parmetros para reducir el tamao del audio. Desde aqu tambin
podemos configurar si el sonido es en 3D, importante si queremos usar este tipo de
funciones en nuestro juego.

Programa externo para editar sonido


Game Maker no tiene un editor de sonidos propio, al igual que con los sprites que podemos
editar muchas opciones, as que si queremos editar algn fichero de audio hay que hacerlo
con un programa externo. Recordad que en las Preferencias del programa podemos
asignarle uno, para que cuando le demos al botn Edit Sound abra el programa
directamente. Todos los cambios que hagamos en ese programa hay que guardarlos para
que quede recogido en nuestro proyecto.
Un programa externo que recomiendo, adems de gratuito, es Audacity. Podemos cambiar
muchas opciones de nuestro audio, cortar, seleccionar, subir de volumen, etc. En un futuro
ya explicaremos como utilizar este programa en Recursos.

80

www.aprendegamemaker.com

Introduccin a los objetos en Game Maker Studio


Hemos visto varios tipos de recursos hasta ahora, como los sprites para hacer algunas
animaciones, o los sonidos para aportar riqueza a nuestro juego. Hemos aadido todas estas
cosas, pero el juego no hace nada an. Por qu? Porque todava no hemos usado el recurso
ms importante de todos: los objetos.
Los objetos es un recurso que utilizamos para controlar todos los aspectos del juego, gracias
a la programacin de los diferentes comportamientos que pueden tener. Un objeto puede
tener un sprite asociado para que podamos verlo y controlarlo mientras jugamos, pero
tambin puede ser invisible y que haga otras cosas como controlar el tiempo, vidas, etc.

Diferencia entre instancias y objetos


En realidad, no colocamos los objetos en una room para que se ejecuten. Lo que colocamos
son instancias de esos objetos. Podemos decir que una instancia es una copia de ese objeto,
una plantilla con todas las caractersticas que pueden hacer. Lo comento porque hay cosas
que se pueden hacer con objetos y cosas que se pueden hacer con instancias, ya que aunque
lo parezca no es lo mismo.
Por qu es diferente? Cuando decimos que algo afecta a una instancia, afecta solo a esa
copia en particular que se ha creado en la room. Si existen otras instancias del mismo objeto,
a esas no les afecta en nada. Cuando decimos que algo afecta a un objeto, le afectar a
todas las instancias que hay en la room en ese momento.

Creando un objeto nuevo


Para crear un objeto nuevo, hacemos como siempre: o desde el rbol de recursos, botn
derecho o desde el men Resources Create Object. Aparecer una ventana parecida a
sta:

81

www.aprendegamemaker.com

Propiedades de objeto en Game Maker Studio

Vemos que la ventana de propiedades del objeto tiene muchisimas opciones, pero no hay
que asustarse, las explicaremos todas, y ya veris que es muy fcil de usar cuando nos
hemos acostumbrado. Vamos a ver cada una de las secciones que hay.
En la parte izquierda, podemos ver algunas propiedades del objeto: podemos darle un
nombre, recomendable usar el prefijo obj_, y otras propiedades genricas. En la parte
central vemos una lista de eventos, que podemos aadir y cambiar una gran lista de ellos. En
la parte de la derecha, vemos una seccin sobre las acciones, que estn relacionadas para
cada uno de los eventos. Podemos aadir un gran nmero de acciones, que podemos
seleccionarlas de las pestaas y botones que vemos en la derecha. Los eventos y las acciones
las comentaremos en detalle en prximos captulos, ya que es la parte ms importante de
Game Maker Studio y es la base sobre la que programaremos. Ahora veremos las
propiedades ms importantes de un objeto.

Propiedades de un objeto en Game Maker Studio


Como ya hemos comentado, debemos ponerle un nombre que identifique el objeto. Debajo
de donde indicamos el nombre, podemos elegir, si queremos, el sprite que inicialmente
asociaremos al objeto. Para hacerlo, hay que hacer click izquierdo en el cuadro de texto o en
el botn de al lado del agrupador de sprites, y aparecer un men emergente con todos los
82

www.aprendegamemaker.com

sprites, con la misma estructura de subcarpetas que hay en el rbol de recursos. Elegimos un
sprite, y aparecer su nombre y una visualizacin en miniatura al lado. Vemos que hay dos
botones dentro del cuadro, el botnEdit, que abrira la ventana de propiedades del sprite
seleccionado, y el botn New, que abrira la misma ventana pero para crear un sprite nuevo.
As podemos acceder a los sprites rpidamente sin necesidad de buscarlo en el rbol de
recursos.
Vamos a ver otras propiedades que aparecen ms abajo.

Propiedad Visible
La propiedad visible indica si las instancias, recordemos que son las instancias las que se ven
en la room y no los objetos, se van a ver cuando se inician en la room. Decimos cuando se
inician porque esta propiedad la podemos cambiar en cualquier momento. Lo habitual es
que en la gran mayora de veces sern visibles, pero a veces es til tenerlos como invisibles.
Por ejemplo, podemos crear un objeto obj_wall, le asociamos un sprite cuadrado y ese
objeto ser el que delimitar hasta dnde puede llegar un jugador, definir lmites de juego,
movimientos de enemigos, acciones programadas, etc. Aunque los objetos sean invisibles,
reaccionarn de la misma manera a los eventos y acciones. Aunque estos objetos sean
invisibles, es importante tambin definir su sprite, ya que tambin podr usar su mscara
para los eventos de colisin con otros objetos.
Un tema importante es que el evento Draw, que se utiliza para pintar sprites y otras
opciones, no se ejecutara, as que si tenemos acciones en este evento y en algn momento
ponemos la instancia a invisible, se dejar de ejecutar.

Propiedad Solid
Al marcar esta propiedad, definimos el objeto como Slido. Es muy importante esta
propiedad, sobre todo para los eventos de colisin con otros objetos, ya que funcionan de
manera diferente, y la recomendacin es que los objetos que sean slidas no se muevan. Ya
hablaremos en detalle cuando hablemos de colisiones.

Propiedad Depth / Profundidad


Podemos ajustar la profundidad de las instancias, para controlar cmo se ven cuando se
solapan entre ellas. As veremos cul va por debajo y cual va por encima de otros objetos en
otras profundidades. Cuando mayor sea el nmero que pongamos en Depth, mayor ser su

83

www.aprendegamemaker.com

profundidad y se ver por debajo de otras instancias. Vemos un ejemplo sacado de la ayuda
on line:

Ejemplo de profundidad entre diferentes objetos

Y qu ocurre en los objetos que tienen la misma profundidad? No hay ninguna garanta de
cmo se pueden ver. Yo he visto que el orden de creacin de las instancias influye en la
profundidad, siendo las ms nuevas creadas las que se colocan por encima. Pero si no
queremos arriesgarnos, damos profundidad con nmeros negativos para las instancias que
queremos por encima, y con nmeros positivos para las que queramos ms por debajo.
Esta propiedad puede ser cambiada durante el juego, al igual que la propiedad anterior.

Objetos persistentes
Cuando cambiamos de una room a otra, todas las instancias de objetos que se han creado se
destruyen y se crean de nuevas las que hemos indicado en la siguiente room. Si nos interesa
que una instancia permanezca siempre, marcamos la propiedad Persistent. Solo
desaparecer si se lo indicamos nosotros de forma explcita, ya sea con la accin
correspondiente o mediante cdigo GML.
Un ejemplo de esto sera tener un personaje principal, con todas sus caractersticas, que se
va moviendo de una room a otra.

Cosas a tener en cuenta con objetos persistentes


Tenemos que tener especial cuidado de crear y destruir objetos persistentes correctamente,
ya que puede ser una fuente de errores. Por ejemplo, si estamos jugando con nuestro objeto

84

www.aprendegamemaker.com

persistente como personaje principal, pausamos el juego y tenemos una opcin de volver al
men principal, obviamente aparecer nuestro personaje si no lo hemos destruido!
Otro tema son sus eventos: los eventos Game Start, Game End, Room Start y Room End se
habrn desencadenado (comprobar si se desencadena eventos de room al cambiar de
room). Si reiniciamos el juego, con la accin correspondiente o con la funcin
game_restart(), todos los objetos se destruyen, incluidos los objetos persistentes, as
que tocara crearlos de nuevo.
Si desactivamos un objeto persistente, ste no va a cambiar de una room a otra, a no ser que
lo volvamos a activar antes que se ejecute el evento Room End.

Herencia entre objetos: propiedad parent


Una de las opciones ms importantes que existen en Game Maker Studio es la posibilidad de
herencia entre objetos. Si conoces otros lenguajes de programacin, vers que existen
similitudes, pero tambin cosas diferentes y particulares con Game Maker. En esta opcin
podemos definir un objeto padre al objeto que estamos modificando, de ah el trmino de
herencia.
Haremos un resumen rpido ahora para entender el concepto, y en el futuro ya iremos en
detalle con estas caractersticas. Un objeto padre comparte cdigo, acciones y eventos con
el objeto hijo. Eso significa que si tenemos un evento Create en el objeto padre, las acciones
que habr tambin se ejecutarn en sus hijos. Pero adems, si tenemos otros objetos que
tienen un evento de colisin con un objeto padre, sera lo mismo que tenerlo para los hijos.
Podis imaginar el ahorro en tiempo que supone esto. Imaginemos un personaje que puede
tener una pistola, una escopeta, etc.. Cuando dispara, podemos tener diferentes objetos de
bala. Si lo pensamos bien, ya sea una bala de pistola, escopeta, recortada, metralleta, etc,
har exactamente lo mismo: se mover a una velocidad en una direccin, y si impacta en
otro objeto le har un dao y desaparecer. Cual es la diferencia entre cada una de las
balas? Quizs la velocidad y seguramente el dao causado. Podramos tener un objeto que
hiciese todos los eventos y acciones, y luego en cada objeto hijo definir solamente el dao
que hace. As podemos tener muchos objetos y con un mnimo esfuerzo aplicarle sus
caractersticas.
Si le damos al botn que tiene el texto Parent, abriremos automticamente una nueva
ventana de propiedades del objeto padre, sin necesidad de buscarlo en el rbol de recursos.
Ms abajo, tambin tenemos una lista de los objetos hijos que estn asociados, pudiendo
abrir cualquiera de ellos haciendo click en el nombre.
85

www.aprendegamemaker.com

Mscaras en objetos
Ya hemos hablado anteriormente de las mscaras de sprites. Pueden tener la misma forma
que el sprite, o definir una forma bsica como un rectngulo o un valo. Tambin podemos
definir una mscara diferente para cada subimagen del sprite.
Cuando un objeto le hemos asociado un sprite, la mscara del objeto es la del sprite. Aunque
es posible que nos interese que un objeto tengo una mscara diferente a la del sprite
asociado, o incluso que no tenga sprite pero s mscara. Se puede hacer gracias a esta
propiedad del objeto.
Recordad, las mscaras son importantes para los eventos de colisin porque indicarn
cuando se producen. Si un objeto no tiene mscara no se producir su evento de colisin.

Informacin del objeto


Vemos un botn que pone Show Information, dnde mostrara un texto con una visin
general de todo el objeto, con sus eventos y acciones. As podemos imprimirlo o guardarlo
como HTML, para poder echar una ojeada o depurar el cdigo del objeto.

Usar Physics
Si marcamos este check, le decimos que el objeto debe ser parte de un mundo con
elementos de fsicas. Abrir parte de la ventana del objeto con nuevas propiedades fsicas
para definir.
Estas propiedades se vern de esta manera:

86

www.aprendegamemaker.com

Propiedades de fsicas de un objeto




Forma de colisin: con el sistema de colisiones normales, usamos la mscara asignada


al objeto, pero con las fsicas activadas, ya no ocurre as. Tenemos que asignar una
mscara nueva nosotros mismos, que puede ser un crculo, un rectngulo o una forma
poligonal. Si es una forma poligonal, tenemos que seleccionarla nosotros mismos, con el
botn Modify collision Shape (modificar forma de colisin), y veremos la siguiente
ventana:

87

www.aprendegamemaker.com

Forma que pintamos para definir las colisiones de un objeto

Es muy parecida al editor de paths, que hablaremos prximamente, y funciona de una


manera muy parecida, pero tiene una serie de condiciones:


Si es una mscara circular, solo podemos modificar el dimetro para cambiar su


tamao.

Si es una mscara rectangular, podemos modificar sus esquinas.

Si es un polgono, tiene que tener entre 3 y 8 puntos y debe ser convexo.

Densidad: la densidad podemos definirla como la masa que tiene dentro de un


volumen, as que su equivalente es el peso que tendr dentro del espacio que hemos
definido. Por ejemplo, un globo tendr una densidad baja, un bloque de piedra tendr
una densidad alta (aunque ocupe el mismo volumen). Como vemos, no podemos definir
el peso de un objeto, definimos su densidad y Game Maker lo calcular dependiendo
del volumen que ocupa.

Restitucin: es para definir el rebote de un objeto cuando choca. Podemos decir si un


objeto rebota mucho o poco, aunque tambin depender de propiedades como la
gravedad o la friccin.

88

www.aprendegamemaker.com

Grupo de colisiones: Por defecto su valor es 0, lo que significa que su interaccin es


normal, as que funcionar con un evento de colisin. Si le damos un valor positivo, le
decimos que estas instancias de objetos siempre chocan, y si tiene valor negativo es que
nunca chocan. Usar grupos implica mucho proceso de mquina, as que hay que
utilizarlo lo menos posible.

Amortiguacin lineal: se utiliza para reducir la velocidad de una instancia, cuando no


existe colisin.

Amortiguacin angular: igual que la anterior, pero se utiliza en movimiento circular y


reducir su rotacin. As no girara infinitamente.

Friccin: es la resistencia del movimiento cuando hay colisin, es decir, cuando chocan
dos objetos.

Tenemos adems tres checks para activar o desactivar y cambiar su comportamiento. Estas
opciones son:


Sensor: diremos que ignore las propiedades fsicas del objeto, pero que devuelva los
eventos de colisin de los objetos de alrededor.

Empezar despierto: est marcado por defecto, para que los objetos con fsicas tenga
sus propiedades activas desde el principio. Si no nos interesa, lo desmarcamos y no
actuar hasta que algo acte en el objeto.

Cinemtica: habr algunos casos que tengamos objetos dentro del mundo fsico que no
nos interesa que acte fuerzas como la gravedad, ni colisiones, como pueden ser
plataformas mviles o el suelo. Podramos definir su densidad a 0 para que no afecte,
pero eso significara que su fsica no reacciona a nada y sera un objeto esttico. Si en
cambio marcamos esta casilla, no reaccionar a colisiones ni gravedad, pero todava
podremos moverlo o girarlo usando las variables apropiadas (podramos tener
plataformas mviles).

Conclusin final
Hemos visto que es un objeto, para que sirve y las caractersticas ms importantes que tiene.
Antes de detallar los eventos y acciones que podemos asignar a un objeto, hablaremos un
poco en detalle sobre la herencia en otro artculo y cmo podemos agrupar varios objetos
que hagan lo mismo.

89

www.aprendegamemaker.com

Cmo funciona la herencia de objetos


Hemos visto que es un objeto y sus propiedades principales. Ahora vamos a mirar en detalle
una propiedad muy importante, la propiedad Parent. Esta propiedad indica si el objeto que
estamos tratando hereda todas las caractersticas de otro objeto. Veamos para que nos
puede servir eso.

Herencia para eventos de colisin


Imaginemos que tienes un objeto jugador, que puede recoger monedas que su valor es de
50, 100 y 250 puntos. Tendramos que crear 3 objetos para cada moneda, y crear tres
eventos de colisin para detectar las diferencias. Algo parecido a esto:

Ejemplo de tres eventos de colisin para diferentes objetos

Podramos crear un objeto padre, que cada moneda heredase de l y solo hacer el evento de
colisin con el objeto padre. Quedara as:

90

www.aprendegamemaker.com

Ejemplo de evento colisin para un objeto que hereda

Mucho ms simplificado, verdad? Otro ejemplo: imaginemos que tenemos 5 enemigos


diferentes, cada uno con un comportamiento o movimiento diferente, pero si, cualquiera de
ellos, toca al protagonista, muere. Es necesario crear 5 eventos de colisin? El ejemplo sera
el mismo que el anterior.

Otro ejemplo de herencia: nada de cdigo en los objetos hijos


Imaginemos que tenemos 10 objetos diferentes, pero todos se mueven igual. Eso implica
que son 10 sprites diferentes. Por ejemplo, podra ser una bala, una flecha, un misil, etc
Podramos tener un objeto padre con todos los eventos y acciones necesarios, y crear cada
hijo dnde solo le pondremos un sprite y le diremos cul es el objeto que hereda. Ningn
evento en el objeto? Si vemos alguno as, no significa que no haga nada, sino que ejecutar
los del padre. Por eso es til el botn Parent, para abrir directamente ese objeto y ver que
hace.

Mezclar comportamientos: sobrescritura en eventos


Igual que es posible no tener eventos, es posible tener los mismos eventos con acciones
diferentes para los objetos padres y para los objetos hijos. En programacin se le llama
sobrescritura. Por ejemplo, imaginemos que tenemos dos objetos monstruos, que actan igual,
solo que uno se mueve de izquierda a derecha y el otro de arriba a abajo. Podemos tener un
objeto padre que diga que todos se mueven de una manera, por si algn da creamos otro
monstruo. El monstruo que se mueve igual que el padre, no le aadimos nada, pero el
monstruo que se mueve diferente, seguro que tendremos que modificar el mismo evento.

91

www.aprendegamemaker.com

De esta manera, sobrescribimos el evento para que haga algo totalmente distinto (o en este
caso parecido).

Aprovechar los eventos del padre


Pero tambin es posible aprovechar las acciones del padre y aadir las nuestras, sin
sobrescribir totalmente el evento. Por ejemplo, imaginemos que tenemos un objeto padre,
que cuando se crea, evento Create, tiene una serie de caractersticas: dao, vida y armas.
Ahora creamos un objeto hijo, donde la nica diferencia es que tendr ms vida. Si
sobrescribimos su evento Create, al poner solo ms vida perderamos el dao y las armas.
Game Maker Studio tiene una accin especial para cuando sobrescribimos el evento, para
poder llamar antes al evento del padre, y luego modificar la vida para ese objeto en
particular.
Una cosa importante cuando tratamos estos objetos: a veces con el objeto hijo no vemos
algunos eventos que ya estn creados en el padre. Al crear un evento nuevo de un objeto
que tiene herencia, hay que fijarse siempre si el padre hace lo que nos interesa, no sea que
perdamos en la sobrescritura cosas que puedan dar error.
Como hemos visto, usar un objeto padre o un objeto hijo puede implicar a varios objetos o
instancias. Tener un evento de colisin con el objeto padre afectar a todos los hijos.

Mltiple herencia
Como os podis imaginar, es posible heredar varias veces un objeto. Un objeto padre puede
tener otro objeto padre, y as infinidad de veces. Por ejemplo, podemos tener un objeto
obj_enemy, un objeto obj_monster que hereda del anterior y luego objetos del tipo
obj_monster1, obj_monster2 que heredan de obj_monster.
Podemos crear tambin el tamao de jerarqua que queramos. Es posible que obj_enemy y
obj_monster nunca los pongamos como instancias en una room, ya que solo lo utilizamos
para simplificar nuestro cdigo. Igualmente, podemos crear otro objeto obj_enemy1 que
herede de obj_enemy, independientemente de los objetos monstruos.
Lo que no es posible son las herencias cclicas. Nos dar un error si un objeto obj_child
hereda de un obj_parent, y este obj_parent hereda tambin de obj_child.

Conclusin

92

www.aprendegamemaker.com

Hemos visto una de las caractersticas ms potentes de Game Maker Studio, que nos
permitir ahorrar mucho tiempo y trabajo. Para dominar la herencia de objetos hay que
dedicar algo de tiempo, y tener muy claro cmo estructurar tus objetos, pero veris como se
os recompensa a largo plazo.

93

www.aprendegamemaker.com

Cmo funcionan los eventos


Qu son los eventos? Un evento es un momento muy concreto del juego, que utilizamos
para decir que ocurran ciertas cosas. Es una manera de decir que se ha disparado algo en
nuestro juego, como que se crea un objeto, se pinta algn elemento, hay una colisin, etc.
Cuando ejecutamos un juego, se crea un bucle desde que empieza el juego hasta que lo
finalizamos. Definimos la velocidad de ese bucle en la room (room speed). Lo habitual es
poner ese valor a 30, es decir, 30 veces por segundo generamos un ciclo donde ocurren una
serie de eventos. Es en esos momentos, los eventos, cuando podemos definir qu acciones
se van a ejecutar.
Los eventos los definimos en los objetos, que son los recursos ms importantes de Game
Maker Studio. Un ejemplo de cmo quedan los eventos en un objeto sera:

Listado de eventos aadidos a un objeto

Como vemos, hay una serie de eventos listados que responden a ciertos momentos. Cuando
creamos un objeto, esta lista est vaca, as que decidimos qu tipos de eventos necesitamos
y que acciones se ejecutarn en las instancias de ese objeto. Para aadir eventos, le damos
al botn Add Event y nos aparecer una ventana como sta:

94

www.aprendegamemaker.com

Eventos para aadir a nuestro objeto

Es un resumen de todos los eventos bsicos que un objeto puede responder. Algunos de
estos eventos contienen subeventos, para concretar ms algunos comportamientos. Por
ejemplo, si pulsamos en el botn Key Press, nos aparece una lista con todos los subeventos
que permite elegir que tecla el objeto responder. Una vez hemos elegido un evento,
podemos arrastrar, lo que se llama Drag&Drop o DnD, las acciones de la derecha necesarias
para dicho evento. As especificamos para un evento lo que tiene que hacer.

Drag & Drop: arrastrar y soltar acciones


Ya hemos comentado que simplemente arrastrando la accin

dentro de un evento

indicamos que har en ese instante de tiempo. Tambin podemos cambiar el orden de las
acciones movindolas entre ellas, pulsando el botn izquierdo del ratn y arrastrndolo,
arriba o abajo. Si tenemos dos objetos abiertos, tambin podemos arrastrar dicha accin de
un objeto a otro: esto puede ser muy til si queremos hacer una copia de esa accin. Para
copiar en vez de mover una accin, basta con tener pulsado la tecla <Alt>.
Si queremos seleccionar varias acciones, se puede hacer pulsando las teclas <Mays> o
<Ctrl>. Si queremos seleccionarlas todas, usamos la combinacin de teclas <Ctrl> + <A>.
Recordemos que hablamos de acciones de solo un evento!

Ms opciones de los eventos

95

www.aprendegamemaker.com

Aparte de aadir eventos, tenemos dos botones ms para interactuar con ellos. Hablamos
de los botones Eliminar y Cambiar. Si tenemos un evento seleccionado, al pulsar el botn
Eliminar nos preguntar si queremos eliminar ese evento con TODAS las acciones
relacionadas, por lo tanto, no es necesario eliminar las acciones antes.
Con el botn Cambiar, podemos cambiar un evento por otro, para mantener las acciones
que ya hemos definido. Si ese evento ya lo hemos aadido, no pasar nada, se mantiene
todo tal y como lo vemos. Esta accin es til si, por ejemplo, hemos decidido que para
disparar usamos la tecla <A> y lo cambiamos a la tecla <S>. As mantenemos todas las
acciones programadas fcilmente.
Otra opcin muy interesante y que no aparece como un botn es duplicar los eventos. Para
duplicar un evento, le damos al botn derecho sobre el evento y nos aparecer esta opcin.

Men que aparece para duplicar un evento

Por ejemplo, si queremos movernos a la izquierda con la tecla <A> y con la flecha izquierda,
duplicaramos el evento que ya tenemos programado. Recordad que los cambios en un
evento no afectara al otro!
En el prximo post haremos un detalle de todos los eventos que nos podemos encontrar en
Game Maker Studio, as siempre que haya dudas os puede servir de referencia. Nos vemos!

96

www.aprendegamemaker.com

Listado de eventos
Hemos visto en el post anterior un poco cmo funcionan los eventos y como los usamos a la
hora de aadirlos a un objeto, que es la base para programar en Game Maker Studio. Ahora
vamos a detallar cada evento, para saber cuando se desencadena y como lo podemos
utilizar.

Evento Create
Este evento ocurre cuando la instancia de un objeto se crea por primera vez en una room.
Es el primer evento que se ejecuta, por delante de otros que comentaremos despus. Se
utiliza normalmente para inicializar variables, iniciar timelines, establecer paths, etc. Se
ejecutar slo una vez por instancia.

Evento Destroy
El evento Destroy es el ltimo que se ejecuta cuando se elimina una instancia. Normalmente
no lo usaremos mucho, pero es til para aadir comportamiento a los objetos. Por ejemplo,
podemos definir una explosin, aumentar la puntuacin por eliminar un enemigo, efectos
de partculas o ejecutar algn sonido. Un apunte rpido y muy importante a tener en
cuenta: cuando cambiamos de una room a otra, las instancias son eliminadas, a no ser que el
objeto tenga la propiedad Persistent activada. El evento no se activa en este caso, solo se
activa cuando le decimos expresamente que se elimine. Por ejemplo, si tenemos un enemigo
que sume 5 puntos cuando lo matamos, definido en su evento Destroy, al salir de la room, si
hay enemigos pendientes, no sumar esos puntos.

Eventos de alarma
Cuando queremos aadir un evento de alarma, nos aparecer un listado que ir desde la
Alarma 0 hasta la Alarma 11. Significa que podemos aadir 12 tipos de alarmas diferentes.
Una alarma slo se ejecuta cuando se ha llamado previamente mediante una accin.
Ponemos una accin relacionada con la Alarma 0, por ejemplo, y le ponemos un tiempo para
que se lance (el tiempo se mide en steps). Lo habitual es configurar los pasos/steps a 30 en la
room, as que si ponemos una alarma con valor 30, al cabo de un segundo se ejecutara el
evento correspondiente. Un ejemplo sera crear un enemigo que cada 5 segundos cambie de
direccin. Cuando creamos el enemigo, evento Create, aadimos una accin de alarma.
Podemos poner como dato el nmero de steps multiplicado por 5. Luego aadimos el

97

www.aprendegamemaker.com

evento Alarm 0 y ah le decimos que cambie de direccin. En el mismo evento deberamos


de volver a llamar a la accin si queremos que eso se repita siempre.

Evento Step
La unidad de tiempo usada en Game Maker Studio son los steps o pasos por segundo. En
cada paso se comprueban todos los eventos y se activan los que sean necesarios mientras se
ejecuta el juego. As que en este evento podemos comprobar y ejecutar acciones en cada
paso. Un evento Step en realidad contiene tres sub-eventos, Step,Begin Step y End Step.
Para la gran mayora de las cosas el evento Step es ms que suficiente para poder usarlo,
pero a veces queremos controlar el cdigo que se ejecuta y en qu momento. Para ello
tenemos los eventos de inicio y fin de step, para comprobar en cada paso todas las opciones
en orden. El evento Step se utiliza para comprobar cosas continuamente. Por ejemplo, si
queremos comprobar que estamos a una distancia de un enemigo, lo podemos comprobar
en este evento. Hay que vigilar de no hacer cosas muy complicadas en este evento, ya que si
tenemos muchas instancias podemos hacer relantizar nuestro juego. Usadlo con
precaucin!

Evento Colisin
Cuando no tenemos activada la opcin de Physics, podemos calcular las colisiones basadas
en las mscaras de los objetos. Puede ser la mscara del sprite que tenga en ese momento o
la mscara que definimos en el propio objeto. En el momento que se superpongan estas
mscaras se lanza el evento. Si uno de los objetos no tiene mscara definida (podemos tener
un sprite sin mscara), aunque tenga un sprite que dibuje no habr colisiones detectadas. Si
el objeto que choca con el otro es Slido, antes de ejecutar el evento de colisin, muy
importante, la instancia se coloca a la posicin previa que se ha registrado la colisin, pero
slo si hay un evento de colisin creado. Si tenemos un objeto obj_player1 con un
evento de colisin con el objeto obj_player2, si en obj_player2 tambin tenemos
este evento, ejecutar los dos eventos. No sabremos nunca en qu orden ejecutar uno o el
otro. Hay que tener especial cuidado con los objetos heredados. Imaginemos que tenemos
los objetos obj_child1 y obj_child2, que heredan de obj_parent. Quizs nos
interese crear un evento colisin en obj_parent sobre el mismo obj_parent, para que
afecte a los dos objetos hijos que hemos comentado. Cuidado con las acciones que
hagamos que se ejecutarn en los dos hijos!

98

www.aprendegamemaker.com

Eventos de teclado
Cuando creamos un juego, tenemos muchas maneras para que el jugador interaccione con
l, desde el ratn, el gamepad, el teclado. Para controlar todas las opciones del teclado,
Game Maker proporciona una lista muy grande de subeventos que se puede utilizar para los
tres eventos principales. Hablaremos de los tres eventos porque ser indistinto utilizar una
tecla u otra.

Evento Keyboard Pressed: este evento se activa cada vez que se presiona una

tecla.


Evento Keyboard: este evento se lanza continuamente, en cada step o paso,


mientras la tecla se mantiene pulsada.

Evento Keyboard Released: se activa una vez se ha liberado o dejado de presionar


una tecla.

Como vemos, conocer estos tres eventos es muy importante ya que hacen cosas diferentes,
y podemos controlar nuestro juego de una manera ms eficiente. Tambin tenemos que
tener en cuenta que los eventos de teclado se activaran en todas las instancias activas de la
room dnde hayamos definido este evento, y respondern cada una a las acciones que
hayamos programado. Por ejemplo, si tenemos la tecla <A> para mover al personaje y otro
evento con la misma tecla para que un enemigo dispare, har las dos cosas a la vez.
La lista de subeventos que aparece es enorme, tal y como hemos comentado, y distingue
todas las opciones del teclado que tenemos. Tambin distingue el teclado numrico
(tenemos que tener activo mediante <Bloq num>), el que tenemos a la derecha, con los
nmeros que tenemos por encima de las letras.Podemos seleccionar tambin teclas
especiales, como las superiores de funciones (<F1>, <F2>, <F3>) como las teclas de
retroceso, inicio, fin, eliminar, insertar, etc.
Como apunte ltimo, tambin nos permite seleccionar dos subeventos especiales, ninguna
tecla y cualquier tecla. Con la primera opcin, podemos detectar que no hay interaccin con
el usuario, as que puede ser til para que el personaje, si tiene una velocidad asignada, deje
de moverse. Con la opcin cualquier tecla podemos detectar cualquier opcin del teclado
sin importar cul pulse.
Para adaptar a dispositivos mviles, Game Maker Studio nos permite aprovechar todos los
eventos de teclado que hayamos definido y que funcione con un rea de la pantalla. De esta
manera sencilla podemos crear un touch-pad para nuestra tablet o mvil.
99

www.aprendegamemaker.com

Eventos de ratn
Al igual que los eventos de teclado, los eventos de ratn contiene una serie de subeventos
para especificar que est sucediendo durante el juego. Al igual que cuando pulsamos
cualquier tecla del teclado, con el ratn podemos detectar cuando pulsamos el botn
izquierdo, el botn central y el botn derecho. Una diferencia importante respecto a los
eventos de teclado que hemos comentado es que se ejecuta en todas las instancias donde
hemos asignado acciones al evento, pero en los eventos de ratn acta en la mscara que
tiene el objeto (recordemos que la mscara puede ser muy diferente al sprite). As que para
que funcione el objeto tiene que tener mscara!
Para el evento Left pressed, Right pressed o Middle pressed, se detecta una sola vez que se
pulsa el botn indicado. Para el evento Left released, Right released o Middle released, se
activa una vez cuando se ha dejado de pulsar el botn. El evento Left button, Right button o
Middle button se activa en cada step o paso mientras se mantenga pulsado cada uno de los
botones. Como hemos visto hasta ahora, es igual que con el teclado.
Tenemos otros eventos relacionados con el ratn, que son Mouse enter y Mouse leave.
Estos no estn relacionados con los botones del ratn, sino con su posicin. Cuando el juego
detecta que el puntero del ratn entra en contacto con la mscara del objeto, se activa el
evento Mouse enter, y cuando el puntero del ratn sale de la mscara del objeto, se activa el
evento Mouse leave. Estos dos eventos se activan SOLO UNA VEZ. Por ejemplo, se podran
usar para cambiar el puntero del ratn para segn que objetos de inventario, botones,
enemigos, etc.
Para finalizar, tambin tenemos el evento Global mouse, que agrupa otros sub eventos de
los botones del ratn. Con los eventos globales del ratn, podemos detectar cuando se ha
pulsado un botn en casos que el ratn no est encima de un objeto, o incluso en ningn
objeto. Simplemente detecta los botones, independientemente de la posicin del ratn. Por
ejemplo, si tenemos algn objeto con el evento Left pressed y Global left pressed
configurado, generar los dos eventos cuando hagamos click sobre l. Si se hace click fuera
del objeto, generar el evento global.
En dispositivos mviles, al no existir el ratn, Game Maker usa sus eventos para detectar
cuando un usuario ha pulsado la pantalla (lo que se conoce como un finger tab, tap o
touch). Si pulsamos una vez la pantalla, se generara el evento Mouse Left, si pulsamos dos
veces seguidas, se ejecutara el evento Mouse Right. Para usar el multitouch o detectar que
hay varios dedos pulsados en la pantalla (los tpicos efectos de deslizar o desplazar, ampliar
o hacer zoom, etc) ya se utiliza funciones de programacin.

100

www.aprendegamemaker.com

Otros eventos
Tenemos unos eventos especiales que los han metido en este saco, ya que son tan dispares y
hacen tantas cosas diferentes que no los han podido clasificar de otro modo. Vamos a
detallarlos a continuacin.


Salir de la room o outside room. Este evento se activa cuando un objeto sale de la
habitacin o room. No estamos hablando de su posicin X/Y, estamos hablando cuando
el sprite entero (la mscara) ha salido de la room. Si el objeto no tiene sprite, entonces
la referencia s que es su posicin X/Y. Como vemos, los objetos que no vemos porque
estn fuera de la room existen, as que podemos crear un objeto fuera para que no se
vea, incluso pintarlo en el Ventana de propiedades de la room.

Este evento lo usamos principalmente para eliminar objetos que ya no nos interese que
aparezca. Por ejemplo, si al disparar creamos un objeto bala y sale fuera de la room,
podemos destruir el objeto con este evento, ya que hemos visto que no se elimina
automticamente, y acabaramos con millones de estos objetos movindose al infinito.
Este evento se ejecuta una nica vez.

Interseccin de lmites o Intersect Boundary. Que no asuste el nombre que le han


puesto. Es muy parecido al anterior, pero en vez de detectar cuando sale de la
habitacin, detecta cuando toca justo en el lmite de la room. Tiene las mismas
caractersticas que el evento anterior, se detecta mediante sprite o con su posicin si no
lo tiene. Se puede utilizar, por ejemplo, si tenemos un objeto que es una pelota y
queremos que rebote en los lmites de la room, sin necesidad de crear objetos y generar
el evento de colisin.

Vistas o views. Cuando hablemos como se define la room, hablaremos en detalle sobre
las vistas y su configuracin. Ahora comentaremos que las vistas se utilizan para ver solo
una pequea rea de toda la room, como podemos comprobar en juegos RPG o
plataformas. Podemos configurar hasta 8 vistas en una misma room. Si seleccionamos
esta opcin aparecen varios subeventos, pero se pueden clasificar en dos categoras: los
objetos que salen de nuestro vista y los objetos que tocan o llegan al lmite de la vista.
Las caractersticas son muy parecidas a los eventos comentados antes.

Inicio del juego o Game Start. Este evento se activa una sola vez en todo el juego.
Adems, las instancias de estos objetos se tienen que colocar en la primera room de
todas desde el editor de rooms, no funcionara si creamos el objeto una vez iniciado el
juego. Ms abajo hablamos del orden de los eventos, pero ahora destacamos que el

101

www.aprendegamemaker.com

evento Room Start se ejecuta despus del evento Create, as que si creamos variables
en el evento Create las podramos utilizar en este evento.


No es habitual usar este evento en varios objetos, aunque se puede hacer. Se suele
crear un objeto controlador para que haga cosas genricas, y este evento es til para
crear variables globales, ejecutar un sonido de fondo, leer ficheros de configuracin
iniciales. En resumen, todo lo que creamos necesario configurar nada ms arrancar
nuestro juego.

Final del juego o End Game. Al igual que el evento anterior, este evento se ejecuta una
nica vez cuando finaliza tu juego o se cierra la ventana. Este evento no se ejecuta en
todas las exportaciones que ofrece Game Maker. Por ejemplo, en iOS los juegos nunca
se cierran, se quedan pausados. En navegadores funcionara cuando cerramos la
pestaa donde est ejecutndose el juego, pero es recomendable probar todas las
opciones para comprobar que lo hace correctamente. Se suele utilizar para grabar datos
o configuraciones en ficheros.

Inicio de room o Room Start. Este evento se ejecuta para todas las instancias que se
encuentran al principio en la room. Al ser el evento Create el primero que se ejecuta,
tambin podemos utilizar variables previamente creadas.

Fin de room o Room End. Ocurre cuando una room termina, por ejemplo porque se
cambia a otra room. Se suele utilizar para destruir objetos o casos especiales como listas
o partculas, para que no ocupen memoria.

No hay ms vidas o No More Health. Game Maker utiliza un sistema de vidas que ya
viene en la aplicacin, que podemos utilizar o no, que usaramos con la palabra Lives.
Aunque no entendamos an el uso de variables, nos adelantamos diciendo que es una
variable global que se crea al comienzo del juego. Podemos dar valor, sumar o restar el
valor de Lives/vidas, as que podemos manipularlas como creamos oportuno. El evento
se activa cuando el nmero de vidas es inferior o igual a 0. Lo podemos utilizar para
ejecutar de alguna manera un Game Over, por ejemplo con un mensaje o reiniciando la
room actual.

No tienes ms energa o No More Health. Se puede llamar energa, salud o Health, que
funciona igual que la variable de Lives. Es una variable global llamada Health y podemos
tambin usarla como queramos, para dibujar una barra de energa, utlizarlo para
combinarlo con las vidas, etc. El evento se ejecuta cuando su valor es ms pequeo o
igual que 0. Por ejemplo, podemos usar la energa y cuando llegue a 0, restarle una vida.
Existen acciones propias para poder dibujar tanto la energa como las vidas que ya
vienen integradas en el programa.

102

www.aprendegamemaker.com

Fin de animacin o Animation end. Hemos aprendido en posts anteriores que los
sprites pueden contener una o varias subimgenes. Si tiene ms de una imagen,
generar una animacin infinita a la velocidad que digamos(a no ser que la controlemos
programando). Cada subimagen tiene un valor numrico, que empieza con su valor 0, y
podemos controlar mediante las diferentes acciones o variables. Pero muchas veces
solo nos interesa saber que la animacin ha terminado, es decir, que ha llegado a su
ltima subimagen. Esto lo podemos saber gracias a este evento. Un ejemplo sera si
creamos un objeto que es una explosin. Como no queremos que se repita la animacin
siempre, podemos hacer que cuando llegue al final desaparezca.

Actualizacin de animacin o Animation Update. Este evento solo se ejecuta en sprites


que son de tipo esqueleto, y se usa funciones especficas para ello. En un sprite que usa
ficheros de imagen sabemos su animacin por cada subimagen, pero en un sprite hecho
con spine slo tenemos la secuencia que hace. Este evento ayuda a saber la orientacin
del esqueleto para aadir cdigo o acciones que nos pueda interesar.

Fin de ruta o End of Path. Ya hablaremos de rutas o paths ms adelante. Os adelanto


que una ruta la definimos y pintamos para un objeto. Esta ruta tiene un inicio y un fin, y
con este evento podemos detectar que el objeto asociado ha finalizado todo el camino.

Definidos por el usuario o User Defined. Es posible que queramos definir un evento
propio, para separar las acciones o el cdigo de otras opciones del objeto. Al ser un
evento especial, no puede ser lanzado por el propio programa, as que eres t el que
lanzas este evento cuando lo llamas. Es muy parecido a como usamos el evento de
Alarma cuando lo queremos lanzar para el siguiente step o paso, la diferencia es que
aqu lo llamas al momento y volveras a la siguiente lnea de cdigo. Se utiliza cuando en
diferentes partes del objeto y en eventos muy diferentes queremos que siempre se
hagan las mismas acciones, y no queremos ponerlo como un Script genrico.

Evento de Dibujo
Este evento es el que manda con todo lo que se ve en pantalla cuando se ejecuta el juego, y
se divide en varios subeventos separados en las siguientes categoras:


El evento Draw estndar se divide en tres tipos: el evento Draw Begin, el evento Draw y
el evento Draw End, por ese orden. Lo ms habitual es usar el evento Draw, para poder
pintar el sprite del objeto, pintar texto como puede ser la puntuacin, barras de
energa, vidas, etc. Recordemos que el evento Draw se ejecuta en cada Step o paso del
juego, o sea, se ejecutar muchas veces cada segundo, as que no debemos poner

103

www.aprendegamemaker.com

acciones o cdigos que pueda ralentizar nuestro juego, al igual que si ponemos muchas
instancias en la room. El evento siempre se ejecutar mientras la propiedad visible sea
true, es decir, aunque no pongamos ninguna accin lo ejecutar para poder pintar su
sprite por defecto. Si aadimos cdigo, entonces estamos controlando lo que queremos
pintar, por lo tanto el sprite por defecto no se pintar a no ser que lo pongamos
expresamente.


Los eventos Draw Begin y Draw End funcionan de una manera muy parecida a los
eventos Begin Step yBegin End. Si queremos preparar algunas acciones antes de
dibujar, como cambiar algunos valores, se puede hacer con Draw Begin, y si queremos
tratar algo despus de dibujar, podemos usar Draw End.

Los eventos de Draw GUI estn pensados para que no afecte al escalado y a la vista o
view utilizada en ese momento. Por ejemplo, si queremos dibujar un cronmetro con el
evento Draw, y nuestro juego utiliza las vistas, no podemos colocarlo situndolo en la
X/Y de la room, sino que se debera hacer con la vista para que siempre sea visible. Pero
si utilizamos Draw GUI podemos colocarlo en la posicin de pantalla que queramos
independientemente de cmo sea nuestro juego: si tiene vistas o no, si lo escalamos,
etc. Tambin tenemos los eventos Draw GUI Begin y Draw GUI End para poder usarlos
tal y como hemos comentado.

Entonces qu hacen los eventos Pre Draw y Post Draw? No existen los eventos de
Draw Begin y Draw End? Pues parece que se suele utilizar cuando tenemos varias
vistas. Pongamos un ejemplo: el tpico juego de carreras cuando juegas con dos
jugadores, cada uno con su mitad de pantalla. Eso se puede controlar fcilmente con
vistas/views. Si tenemos un objeto obj_coche para cada vista, el evento Draw se
ejecutara en cada vista por separado. Es decir, si el evento Draw se ejecuta en cada
paso, al tener dos vistas se ejecutara dos veces por cada paso. Imaginemos que
tenemos cdigo en el evento Draw Begin, para preparar unos datos antes de Draw.
Pasara lo mismo, se ejecutara dos veces, una por cada vista. Con los eventos Pre Draw
y Post Draw se ejecutara solo una vez por cada paso, ya que se ejecutan antes de que
Game Maker prepare todo el canal o bfer necesario para pintar los objetos, as que
podras plantear dnde poner mejor el cdigo, si en un evento u otro. Como veis, el
programa nos da muchas posibilidades para optimizar nuestro juego, y est claro que
todo lo relacionado con dibujar en la pantalla es muy importante si no queremos tener

problemas de rendimiento.
El evento Resize se ejecuta solo en Windows 8 y se activa cuando detecta un cambio en
el tamao de la ventana. Aunque est en la categora de los eventos Draw, aqu no se
puede dibujar nada, solo sirve para comprobar el cambio del tamao y hacer las

104

www.aprendegamemaker.com

acciones oportunas. De esta manera evitamos tener que comprobarlo en el evento Step
(eso significa que en otros dispositivos s que habra que poner el cdigo en ese evento).

Evento Asncrono
Los eventos asncronos son especiales porque no los desencadena Game Maker Studio, sino
al final de una accin externa relacionada, como puede ser la carga de un archivo, la
respuesta de un servidor web o cuando tratamos con paquetes dentro de una red.
Bsicamente, cuando lanzamos una orden o accin, como puede ser la carga de una imagen,
empezar a hacerlo en paralelo y el juego tambin seguir su curso. Cuando la solicitud se ha
completado, enviar un aviso a Game Maker y saltar los eventos asncronos que se han
definido para este tipo de llamada. Si tenemos el mismo evento asncrono en varios objetos,
se dispararan en todas las instancias que se ha definido. La mayora de estos eventos estn
relacionados con los navegadores y juegos que hagamos en formato web. Ahora los
citaremos y ms adelante ya entraremos en detalle con cada uno de ellos. Estos subeventos
son:


Imagen cargada o Image Loaded

Evento HTTP o HTTP Event

Eventos de dilogo o Dialogs Event

Eventos IAP (In App Purchases)

Eventos de la nube o Cloud Event

Eventos de red o Networking Event

Eventos de Steam

Eventos Sociales (principalmente Facebook) o Social Event

Evento de notificacin o Push Notification Event

Eventos de Cargar/salvar Load/Save Event

Evento de grabacin de audio o Audio Recording Event

Evento de reproduccin de audio o Audio Playback Notification Event

Eventos del sistema (detectar dispositivos, por ejemplo) o System Event

Otros eventos fuera de los objetos


Hemos dicho que los eventos estn asociados a los objetos, y damos a entender que solo
podemos programar en los objetos. Existen un par de sitios ms dnde podramos asociar
acciones o, mejor dicho, programar acciones mediante cdigo GML.

105

www.aprendegamemaker.com

Al crear una habitacin o room. Dentro de la ventana de propiedades de la room, existe


un botn llamado Creation Code, dnde podemos programar acciones cuando se inicia
una room.

Cuando aadimos una instancia de esa room. Si le damos al botn derecho sobre la
instancia, una de las opciones es Creation code. Tambin podremos programar acciones
SOLO para esa instancia, y as no afectara a todos los objetos.

Entonces, que se ejecutara antes? El evento Create del objeto, el que hemos aadido en
la room, o el que hemos aadido en la instancia en particular?
Vamos a ver el orden de todos los eventos, ya que hay varios eventos implicados, sobre todo
cuando iniciamos una room o el juego, y tenemos que tener claro ese orden para no tener
sorpresas.

Orden de los eventos


El orden de los eventos no es exacto, ya que depender de muchas situaciones que pueden
ocurrir en nuestro juego. Por ejemplo, si tenemos dos objetos que colisionan y tenemos
tambin otros dos objetos que colisionan, no podemos tener claro cul ejecutar antes. Pero
s que hay una serie de eventos que mantienen un orden al ejecutarse. Estos eventos son:


Evento Create de cada instancia. Nos referimos al que programamos en nuestra


ventana de propiedades del objeto.

Creation Code de cada instancia. La que definimos en cada instancia de la room.

Evento Game Start. Este evento solo ocurre en la primer room del juego.

Creation Code de la room. El que hemos definido en la ventana de propiedades de la


room.

Evento Room Start de todas las instancias.

Imaginemos que un objeto tiene el evento Create o el evento Room Start. Si tenemos varias
instancias en una misma room, cul de ellas se ejecutar antes? Dentro de las opciones de
la room, podemos definir el orden de las instancias, de esta manera podemos definir como
se ejecutarn sus eventos.
Tambin tenemos eventos especficos que siguen un orden establecido. Si queremos
programar algo en cada paso (step) de la velocidad de la habitacin, tenemos:


Evento Begin Step: se ejecuta justo antes del step.

Evento Step: este evento se ejecuta justo antes que las instancias se muevan a su
nueva posicin.

Evento End Step: se ejecuta al finalizar el step.


106

www.aprendegamemaker.com

Como hemos visto, tambin tenemos varios eventos para dibujar, siguiendo este orden:


Evento Pre Draw.

Evento Draw Begin.

Evento Draw.

Evento Draw End.

Evento Draw GUI Begin.

Evento Draw GUI.

Evento Draw GUI End.

107

www.aprendegamemaker.com

Acciones
Hasta ahora hemos visto los eventos, que hemos dicho que son lanzados en un momento
exacto para decir qu acciones queremos hacer. Y qu son estas acciones? Las acciones son
la manera que tenemos de manipular nuestro juego para que haga exactamente lo que
queramos. Si queremos que nuestro juego empieza con 3 vidas, se lo tenemos que decir. Si
queremos que cuando pulsemos la tecla con la flecha izquierda nuestro personaje se mueva
en esa direccin se lo decimos. Y as con todo lo que podamos imaginar.
Afortunadamente, con Game Maker Studio es muy fcil usar las acciones, ya que solo
necesitamos elegir el evento adecuado y arrastramos la accin o acciones que nos interesen.
En prximos posts habr ejemplos para ver cmo se usan los eventos y las acciones en
diferentes casos. Ahora veremos todas las acciones que nos podemos encontrar.

Como se utilizan las acciones en Game Maker Studio


Cuando hablamos de la ventana de propiedades del objeto, coment que las acciones se
sitan en la parte derecha de la ventana, agrupadas en diferentes pestaas. Para usar una de
las acciones, es tan fcil como hacer click en una de ellas y arrastrar y soltar en el evento
elegido (a esto se le llama Drag&Drop, tambin se puede encontrar como DnD).
Existen siete pestaas de diferentes categoras que explicaremos unos prrafos ms abajo. Si
queremos saber qu hace cada accin, aparte de consultar la ayuda que tiene todo el
detalle, colocando el ratn encima podemos tener una breve descripcin. Una vez arrastrada
la accin, se abrir una ventana popup con el detalle de la accin, para poder cambiar
algunos parmetros. De esta manera ya tendramos la accin definida.
Una vez tengamos la accin relacionada con el evento, podemos editar sus parmetros
haciendo doble click sobre la accin. Tambin podemos cambiar el orden de las acciones
dentro de toda la lista, mediante arrastre Drag&Drop, eliminar una o seleccionar varias
acciones para arrastrarlas o copiarlas entre diferentes objetos.

Detalle de una accin


En la ventana pop-up que nos aparece en una accin concreta, tenemos una serie de
informacin que veremos en la mayora de todas las acciones, as que lo explicamos ahora,
aunque las acciones sean diferentes. En la barra de esta ventana encontramos una pequea
descripcin y un pequeo icono indicando que accin es. Tambin aparece un cuadro con el
texto Aplica a/Applies to. Nos aparecen tres opciones:
108

www.aprendegamemaker.com

Self: la gran mayora de las veces se deja esta opcin por defecto. Se refiere a que esa
accin se aplicar al mismo objeto dnde estamos programando la accin.

Other: cuando existe un evento de colisin, podemos saber cual es el otro objeto
causante de la colisin. Da igual el otro objeto con que colisionamos, si marcamos other
estamos diciendo que esa accin corresponde al otro objeto.

Object: si nos interesa cualquier otro objeto, al marcar la opcin object nos aparece un
listado con todos los objetos que hemos definido. As esa accin se definira a todas las
instancias de ese objeto que hay en la room en ese momento.

Vamos a explicarlo con un ejemplo. Imaginamos que hacemos click a una instancia de un
objeto en nuestro juego. Aadimos el evento Left button. Ahora vamos a definir una accin.
Queremos que al pulsar con el ratn el objeto se mueva a una direccin. Arrastramos la
accin correspondiente, y dejamos marcada la opcin de Self. Imaginemos que ese objeto es
un botn, y queremos que se mueva otro objeto. Entonces marcaremos la opcin Object,
elegimos ese objeto y tendra la misma accin. Hemos programado el evento en el objeto
del botn y se movera el otro objeto. Si por ejemplo ese objeto est en contacto con otro,
podemos elegir la opcin Other para programar el otro objeto.
Hay otra opcin que encontraremos en la mayora de las acciones, que es la casilla o check
Relative. Cuando marcamos esa opcin, decimos que tiene que tener en cuenta el valor que
ya tiene relacionada con esa accin. Depender de los parmetros de cada accin, ya que
podemos tener valores de X/Y, variables, etc. La mayora de las veces sumar los valores que
tiene con los que estamos informando. Por ejemplo, tenemos la accin para asignar una
puntuacin o Score al juego. Podemos aadir esa puntuacin cuando eliminamos un
enemigo. Al arrastrar la accin al evento Destroy del enemigo, podemos aadir 5 puntos. Si
ponemos el valor 5 a la puntuacin, le estamos diciendo que Score vale 5. Si lo que
queremos es sumar esos 5 puntos, lo hacemos marcando el check Relative. As acumular o
sumar esa puntuacin a la que ya tenemos.

Depurando acciones
Imaginemos que nos da un error en nuestro juego, o simplemente hace una cosa diferente a
lo que queramos que haga. Sospechamos que eso ocurre en un evento en concreto. Cmo
lo podramos arreglar? Sin entrar en la parte donde se debuga y corrige nuestro juego,
podemos adelantar en decir que existe la posibilidad de parar nuestro juego en un momento
exacto. Para eso colocamos un punto de ruptura, y se parar nuestro juego justo cuando

109

www.aprendegamemaker.com

ocurra esa accin. Luego veremos la ventana de depuracin con toda la informacin
necesaria para ver dnde puede estar el fallo, pero eso ya lo veremos ms adelante.
Para definir ese punto de ruptura, podemos hacerlo con el botn derecho sobre la accin o
lnea de cdigo y elegir la opcin Toggle Breakpoint o pulsando la tecla <F9>. Veremos que
aparece un punto rojo, para saber que si ejecutamos el juego en modo depuracin se
detendr en ese punto.
Ahora detallaremos todas las acciones que podemos usar en Game Maker Studio. Haremos
un apartado por cada pestaa que nos encontramos a la derecha.

Pestaa de acciones de movimiento


En la primera pestaa encontraremos agrupadas todas las acciones relacionadas con el
movimiento y la posicin de las instancias en la habitacin/room. Vemos que est agrupado
en tres secciones: movimiento/move, salto/jump, rutas/paths y steps/pasos.

Movimiento fijo o Moved fixed. Utilizamos esta accin para que una instancia
empiece a moverse en una direccin particular. Podemos indicar la direccin mediante
uno de los botones de flecha que vemos (hay 8 direcciones). Si queremos detener el
movimiento, podemos usar el botn central. Para especificar la velocidad en que se
mueve, podemos definirlo en la propiedad Speed. Su valor es el nmero de pxeles por
paso. Aunque es posible usar velocidades negativas, para decir que vamos en sentido
contrario, no es necesario. Podemos especificar varias direcciones. Por ejemplo, si
marcamos la flecha izquierda y la flecha derecha, Game Maker utilizar al azar una o la
otra. El check Relative aumentara la velocidad que ya lleva. Por ejemplo, si se est
moviendo hacia la izquierda a una velocidad de 4 y ponemos esta accin cuando choque
con la pared, si marcamos Speed 1 hacia la derecha con el check marcado, ira en esa
direccin con una velocidad de 5.

110

www.aprendegamemaker.com

Movimiento libre o Move free. Con esta accin tambin indicamos cmo
queremos el movimiento, pero en vez de ofrecer 8 direcciones, puede ser en cualquier
direccin. Para eso tenemos la propiedad direction, que es un ngulo entre 0 y 360
grados. Por ejemplo, con un valor de 0 se movera a la derecha, con 90 hacia arriba, con
180 a la izquierda, con 270 hacia abajo, etc Podemos coger cualquier valor para
marcar esa direccin como queramos. A partir de 360 volvera a coger como si fuera el
valor 0. El check Relative aadira movimiento al que ya tiene. Por ejemplo, si estamos
movindonos hacia arriba y aadimos esta accin hacia la izquierda, nos moveremos
arriba hacia la izquierda.
TRUCO: si ponemos en direction random(360), se mover en una direccin arbitraria.
Ms adelante veremos que poner random(360)nos devolver un valor entre 0 y 359.

111

www.aprendegamemaker.com

Moverse hacia o Move Towards. Tambin podemos especificar que una


instancia se mueva hacia un punto en concreto. Esa posicin la definimos con la
propiedad X e Y. Al marcar una velocidad, la instancia empezar a moverse hacia all,
pero cuidado! No significa que se pare all, sino que una vez llegue a la posicin
continuar en la misma direccin. El check Relative es para los valores X/Y, pero no para
la velocidad.

112

www.aprendegamemaker.com

TRUCO: en los valores X/Y, podramos poner la posicin de un objeto. Por ejemplo,
imaginemos que creamos un objeto bala y queremos que vaya hacia un enemigo.
Podemos poner en X obj_enemigo.x y en Y obj_enemigo.y.


Velocidad horizontal o Speed horizontal. La velocidad de un objeto puede ser


horizontal o vertical. Con esta accin simplemente le indicamos que se mover hacia la
derecha a esa velocidad. Si le indicamos un valor negativo se mover hacia la izquierda.
Si tuviera velocidad vertical no variara. Con el check Relative aumentaramos o
reduciramos esa velocidad.

Como vemos, tenemos varias acciones que pueden hacer lo mismo. Podemos usar una u
otra, nos servir para que visualmente nos resulte ms cmodo trabajar.

Velocidad vertical o Speed Vertical. Lo mismo que la anterior, pero podemos


cambiar la velocidad vertical.

113

www.aprendegamemaker.com

Dar Gravedad o Set Gravity. Con esta accin le damos a un objeto una gravedad.
Vemos que podemos indicar una direccin, que es un valor en grados de 0 a 360 (la
gravedad puede ser en cualquier direccin!), y una velocidad. La diferencia entre
gravedad y velocidad es que con la gravedad, aumentamos la velocidad EN CADA PASO.
Normalmente se pone un valor muy pequeo, lo habitual sera un valor por debajo de 1
(0.8 por ejemplo).

TRUCO: la gravedad se la asignamos a un objeto. Eso significa que podemos tener varios
objetos con distinta gravedad y direccin. Esto no es la vida real!

114

www.aprendegamemaker.com

Horizontal inverso o Reverse Horizontal. Con esta accin inviertes el movimiento


horizontal de una instancia. Muy til si queremos que un objeto rebote. Vemos que no
tiene propiedades para modificar, ya que coge el valor que ya tiene.

Vertical inverso o Reverse Vertical. Lo mismo que lo anterior, pero con la


velocidad vertical.

115

www.aprendegamemaker.com

Dar roce o Set Friction. Con esta accin ralentizamos el movimiento de la


instancia. As, en cada paso, reducimos velocidad hasta que llegue a 0. Al igual que la
gravedad, se suele poner un valor muy pequeo.

Saltar a una posicin o Jump to Position. Al usar esta accin, colocamos la


instancia a una posicin particular. Colocamos los valores X/Y y la referencia de posicin
del objeto cambiar. Con la casilla Relative podemos incrementar su valor en la
posicin.

Esta accin es la habitual para movimiento. Mientras est pulsada una tecla, lo
detectar en cada paso y con el check Relative cambiar su posicin poco a poco.

116

www.aprendegamemaker.com

Ir al inicio o Jump to Start. Un objeto siempre guarda su posicin donde se ha


colocado en el editor de rooms o dnde se ha creado. Con esta accin volvera a su
posicin inicial.

Ir a un sitio aleatorio o Jump to Random. Esta accin mueve una instancia a un


lugar aleatorio de la room. Siempre se colocar en un lugar donde no exista ningn
objeto slido. Las propiedades que aparecen snap hor. y snap. vert se utilizan para
alinearse a una cuadrcula. Por ejemplo, si todos nuestros objetos tienen un tamao de
3232 pxeles, paredes, enemigos, etc, pondramos el valor de 32 en snap para que se
coloque correctamente en nuestra room. Todo esto significa que los valores de X/Y
nuevos sern mltiplos de 32 (0, 32, 64, 96, 128, etc).

117

www.aprendegamemaker.com

Alinear a la cuadrcula o Align to Grid. Al igual que hemos


comentado en la accin anterior, con esta accin alineamos una instancia a
una cuadrcula. Es muy til si nos interesa asegurarnos que todo est en la
cuadrcula.

118

www.aprendegamemaker.com

Volver a la pantalla o Wrap Screen. Con esta accin podemos decir a una
instancia que cuando salga de un lado de la room aparezca por el otro lado. Por lgica,
se suele usar con el evento de Salir de la room o Outside Room. Para que vuelva a la
room tiene que tener ya una velocidad el objeto (no valdra colocarlo en un X/Y
directamente). Podemos elegir valores para que se base en la direccin horizontal,
vertical o ambos.

Mover hasta contacto o Move to Contact. Esta accin se utiliza para mover una
instancia hasta que choque o colisione con un objeto. Le indicamos la direccin para
moverse y se colocara justo antes de la colisin (no se ejecutar el evento). Si se
encuentra en colisin cuando llamamos a esta accin no se har. Podemos indicar si
afecta hasta que se encuentre un objeto slido o cualquier objeto. Tambin podemos
indicar en la propiedad maximum cual es la distancia mxima que recorrera hasta que
se encuentre el objeto.

119

www.aprendegamemaker.com

Esta accin se suele utilizar en juegos de plataforma. Si ha saltado y est en el aire, le


indicamos esta accin hasta que toque un objeto que haga de suelo.

Rebote o Bounce. Al poner esta accin en caso de una colisin con algn objeto,
la instancia rebota de forma natural. El parmetro precise lo ponemos a falso para que
solo tenga en cuenta paredes horizontales y verticales. Si marcamos para que el rebote
sea preciso tambin tendr en cuenta la inclinacin y paredes curvas. Este parmetro
existe para que el tratamiento de colisiones se haga ms rpido o no, depende de lo que
marquemos. Tambin podemos marcar si afecta solo contra objetos slidos o cualquier
objeto.

120

www.aprendegamemaker.com

Asignar ruta o Set Path. Cuando hemos creado una ruta, podemos decir con esta
accin que la instancia seguir ese camino en particular. Indicaremos el path a seguir y
su velocidad. Si la velocidad es positiva empieza al inicio de su trayectoria, si es
negativa, empieza desde el final. El parmetro at end indica su comportamiento cuando
llega al final del camino, donde podemos elegir si nos detenemos o reinicia desde el
principio. Aunque la ruta sea cerrada, tiene su inicio y su fin y se parara en el ltimo
punto. El parmetro Relative es para indicar si la ruta que hemos pintado debe ser
absoluto, que hara la ruta tal y como se ha definido en la room, o relativo, que hace el
camino a partir de la posicin actual de la instancia.

Fin de la ruta o End Path. Utilizaremos esta accin para que la instancia que est
haciendo un camino se detenga.

121

www.aprendegamemaker.com

Posicin de la ruta o Path Position. Con esta accin cambiamos la posicin actual
de la ruta. El valor 0 es del principio de la ruta y el valor 1 es del final. Por lo tanto, da
igual que la ruta sea grande o pequea, ya que un valor de 0.5 indica que estamos justo
en mitad del camino.

Velocidad de la ruta o Path Speed. Usamos esta accin para cambiar la velocidad de la
instancia en la ruta. Si tiene una velocidad negativa hara el camino hacia atrs. Con un valor de
0 podramos detener temporalmente su movimiento.
122

www.aprendegamemaker.com

Pasos hacia o Step Towards. Con esta accin indicamos una posicin y una
velocidad y la instancia empezar a moverse, a la velocidad y posicin marcada.
Podemos asignar un tipo de objeto, slidos o todos, y as los intentara evitar. Esta
accin es muy til para asignar una IA (inteligencia artificial) sencilla. Si marcamos el
check Relative, indicamos que la posicin X/Y que ponemos se le aadir a la posicin
actual de la instancia. El check no afecta a la velocidad.

Pestaa de acciones principales grupo 1


En esta pestaa estn agrupadas todas las acciones relacionadas con objetos/instancias,
sprites, sonidos y rooms. Veamos cada uno de ellos.

123

www.aprendegamemaker.com

Crear instancia o Create instance. Con esta accin creamos una instancia de un
objeto. Se especifica el nombre del objeto creado y la posicin inicial.Como esto lo
creamos desde un objeto, con el check Relative tendra en cuenta la posicin de dicho
objeto para sumar a la posicin del objeto nuevo. Una vez creada la instancia se
ejecutar su evento Create.

Crear instancias durante el juego es muy til, ya que implica que no tenemos que
dibujarlas en la room desde un principio. Por ejemplo, un arma puede crear balas, una
bomba una explosin, etc. Tambin habr objetos que llamamos controladores que
pueden crear enemigos u otros objetos.

Crear con movimiento o Create moving. Funciona igual que la anterior, pero
tendremos adems las propiedades la velocidad y la direccin inicial de la instancia
nueva. La casilla Relative solo son para aumentar en la posicin, no en la velocidad y
direccin.

124

www.aprendegamemaker.com

Por ejemplo, tenemos un objeto arma obj_gun. Cuando pulsamos una tecla disparar
una bala, por lo que usamos esta accin. Podemos marcar el check Relative y la posicin
X/Y como 0, as coger la posicin del arma. Qu direccin debe usar la bala? Para usar
la direccin del arma, podemos escribir direction en vez de poner un nmero. As coger
el valor del objeto obj_gun. Direction es una variable del objeto, que ya hablaremos
en el apartado correspondiente.


Crear aleatoriamente o Create Random. Podemos aadir hasta 4 objetos para


que cree al azar uno de ellos en la posicin que le digamos. La casilla Relative es
solamente para la posicin, al igual que la anterior.

Muy til para crear enemigos aleatorios o, por ejemplo, piezas del Tetris.
125

www.aprendegamemaker.com

Cambiar instancia o Change Instance. Podemos cambiar la instancia actual por la


de cualquier otro objeto. Por ejemplo, podemos lanzar una bomba que al tocar un
objeto explote. La animacin de explotar podra ser otro objeto. Se utiliza porque los
valores de movimiento y variables son iguales. En la propiedad perform events podemos
marcar si se activara el evento Destroy del objeto actual y el evento Create del nuevo
objeto.

Destruir instancia o Destroy instance. Eliminamos la instancia actual. Se


ejecutar siempre el evento Destroy. Ya comentamos que cambiar de una room a otra
no ejecuta el evento, solo en esta accin, y si un objeto sale de la room es posible que
tengamos que valorar destruirlo.

126

www.aprendegamemaker.com

Eliminar desde una posicin o Destroy at position. Con esta accin eliminamos
las instancias dentro de un cuadro delimitado. til para asignar un rea de una bomba.

Cambiar sprite o Change sprite. Esta accin cambia el sprite de una instancia,
indicando un nuevo sprite. Tambin se puede indicar la subimagen que mostrara, lo
habitual es poner un 0 porque sera la primera, o un valor especfico. Con un valor de -1
usara el mismo nmero que est utilizando en ese momento. Tambin podemos elegir
la velocidad de animacin. Si no queremos asignar una velocidad, podemos poner su
valor a 0 y se mostrar la subimagen que hemos definido. No se puede usar una
velocidad negativa. Con un valor de 1 usar la velocidad estndar y mostrar todas las
subimgenes, si es mayor saltar subimgenes para dar sensacin de ms velocidad.

127

www.aprendegamemaker.com

Si tenemos un personaje que se mueva en varias direcciones, es posible que muestre un


sprite diferente si se mueve arriba o hacia la izquierda, as que lo habitual es que en los
eventos de teclado asignemos una direccin de movimiento y un sprite especfico.

Transformar sprite o Transform sprite. Podemos cambiar los valores del sprite
de la instancia. Los valores xscale-yscale se utilizan para cambiar el tamao del sprite. Si
queremos duplicar su tamao, pondremos un valor de 2 a las dos propiedades, si
queremos la mitad, podemos poner 0.5. Tambin podemos poner valores diferentes
para deformar el sprite. Tambin tenemos un ngulo de orientacin, que marcamos
en grados y se hara en referencia a si valor X/Y. Por ejemplo, imaginamos que tenemos
un coche visto desde arriba, y nos interesa que el sprite gire dependiendo de la
direccin que tenga. Aprovechamos la variable direction para usarla en la propiedad
angle y el sprite girar en el mismo sentido. Tambin podemos aplicar un efecto espejo
al sprite, tanto horizontal como verticalmente. Por ejemplo, en un juego de
plataformas, podramos tener un sprite que mire a la izquierda y otro sprite que mire
hacia la derecha. Pero tambin podemos usar slo uno y usar esta accin para girarlo
con efecto espejo, partiendo que su posicin X/Y est justo en el centro.

128

www.aprendegamemaker.com

Color del sprite o color sprite. Normalmente el sprite se dibuja tal y como se
define. Pero con esta accin podemos colorear el sprite, mezclndolo con la imagen que
tengamos. Si queremos dibujar un sprite en diferentes colores, podemos crear uno en
blanco y negro y colorearlo con esta accin. Tambin tenemos una propiedad de
transparencia o alpha, para indicar si el sprite es totalmente opaco, valor 1, o
totalmente transparente, valor 0.

129

www.aprendegamemaker.com

Reproducir sonido o Play Sound. Con esta accin podemos usar uno de los
recursos de Game Maker, los sonidos, para reproducirlos. Podemos elegir si queremos
que se escuche slo una vez, opcin por defecto, o en un loop constante
(infinitamente). La opcin de loop es tpica para msica de fondo, y sin loop es para los
tpicos efectos. Pueden escucharse varios sonidos a la vez.

Detener sonido o Stop Sound. Esta accin detendr el sonido indicado. Si hay
varios objetos ejecutando ese sonido, los detendr en todos.

130

www.aprendegamemaker.com

Comprobar sonido o Check Sound. Aqu encontramos la primera accin que


condicionan otras acciones. Al chequear si un sonido se est ejecutando, llevar al cabo
la siguiente accin (la que se encuentre debajo). Si no es as, no har la accin de
debajo. El check not es para indicar que la accin se ejecutar si el sonido NO se est
ejecutando. Por ejemplo, podemos comprobar si si est escuchando una msica de
fondo. Si no se est reproduciendo (con check not marcado), podemos decir la siguiente
accin s que reproduzca el audio.

Habitacin anterior o Previous room. Empezamos a movernos entre


habitaciones/rooms. Con esta accin nos moveremos a la habitacin anterior de la lista
que tenemos en el rbol de recursos. Qu pasa si estamos en la primera room de todas
y llamamos a esta accin? Pues que obtendremos un error.

Habitacin siguiente o next room. Lo mismo que la anterior, pero nos movemos
a la habitacin siguiente. Si estamos en la ltima habitacin del rbol de recursos y
ejecutamos esta accin, saltar un error.

Reiniciar habitacin o Restart Room. Reiniciar la habitacin actual. Si las


instancias se han eliminado o movido se obviar, todo volver a como lo hemos
definido inicialmente.

131

www.aprendegamemaker.com

Habitacin diferente o Different room. Si no queremos movernos con las


acciones de Previous room o Next room, podemos elegir esta accin especificando la
room que queremos movernos.

Comprobar habitacin anterior o Check Previous. Para poder evitar movernos a


una room anterior que no existe, y as no da error, podemos poner esta accin para que
la siguiente se ejecute correctamente.

Comprobar habitacin diferente o Check Next. Lo mismo que la anterior pero


gestionando la room siguiente.

Pestaa de acciones principales grupo 2


En esta pestaa nos encontramos con las acciones principales relacionadas con temas de
tiempo/timing, informacin/info, juego/game y recursos/resources.

Activar alarma o Set Alarm. Ya hablamos en su momento del evento de alarma,


que podamos tener hasta 12 alarmas diferentes. Con esta accin podemos establecer
estas alarmas, diciendo cual es la que nos interesa, y el nmero de steps o pasos en que
se ejecutar el evento programado. Tambin tenemos la casillaRelative para
incrementar o disminuir los pasos que ya tenga asignados. Si no tenemos ningn evento
132

www.aprendegamemaker.com

asociado, la alarma no se ejecutar. Pero si tenemos el evento creado y no tenemos


ninguna accin o cdigo (lo habitual es poner algn comentario), la alarma har la
cuenta regresiva de los pasos igualmente (puede ser til para controlar segn que
cosas). Si queremos desactivar la alarma para que no salte, podemos poner en nmero
de pasos un valor igual o ms pequeo que cero.

Asignar Timeline o Set Time Line. Con esta accin establecemos un timeline a
una instancia. Indicaremos el timeline que hemos creado, nos aparece una lista con los
que detecta, la posicin con la que queremos empezar (0 es la primera posicin), si
empieza inmediatamente o no, y si cuando llega al final vuelve al principio o no. Un
ejemplo de timeline sera programar una oleada de enemigos para que aparezcan en
cada momento que le digamos nosotros.

133

www.aprendegamemaker.com

Posicin de Timeline o Time Line Position. Con esta accin cambiamos de


posicin a un timeline que ya hemos asignado. Esa posicin puede ser Relativa o no. De
esta manera podemos saltar a ciertas partes de la lnea del tiempo, como tambin
repetir algunas secuencias.

Velocidad en Timeline o Time Line Speed. Al igual que con la posicin, esta
accin cambiara la velocidad del timeline. Un valor de 1 es la velocidad normal, si

134

www.aprendegamemaker.com

queremos duplicarlo le pondremos una velocidad de 2. Podemos tener una velocidad


negativa, en cuyo caso la lnea del tiempo se ejecutar hacia atrs.

Iniciar Timeline o Start Time Line. Iniciar el timeline desde su posicin actual (al
estar pausado o detenido).

Pausar Timeline o Pause Time Line. Detendr el timeline. Si iniciamos el timeline,


lo har desde la posicin en que lo hemos pausado.

135

www.aprendegamemaker.com

Detener Timeline o Stop Time Line. Detiene el timeline y pondr su posicin a 0.

Mostrar mensaje o Display Message. Eesta accin mostrar un cuadro de


dilogo con el texto que le pongamos. Si el texto contiene un smbolo de # en el texto,
se interpretar como si fuera una nueva lnea. Si queremos mostrarlo pondremos \#. Si
el texto empieza con una comilla simple o doble comillas, o , interpretar que es una
expresin, que veremos ms tarde como funcionan.

136

www.aprendegamemaker.com

Abrir direccin web o Open URL. Especificando una URL completa, podemos salir
de nuestro juego para abrir una pgina web.

Reiniciar juego o Restart Game. Al aadir esta accin reiniciamos el juego desde
el principio.

Finalizar juego o End Game. Con esta accin terminaramos nuestro juego. En
algunas plataformas esta accin funcionar diferente. Por ejemplo, en HTML5
terminara nuestro juego, pero no cerrara la pestaa de navegacin. En iOS o Windows

137

www.aprendegamemaker.com

Phone los juegos no pueden finalizarse, se pausan, as que es mejor no ponerlo ya que
pueden rechazar nuestro juego en el proceso de validacin.


Guardar partida o Save Game. Podemos guardar el estado del juego actual. Nos
pide un nombre de fichero (as podemos tener diferentes y guardar varias partidas). En
la siguiente accin veremos que podemos recuperar el juego. Al ser una accin que
viene por sistema, es bastante bsica. Por ejemplo, no guarda el sonido que se est
reproduciendo actualmente, contenido de variables y estructuras, etc).

Cargar Partida o Load Game. Carga el estado del juego desde un archivo.
Tenemos que hacerlo con la misma versin de Game Maker que el mismo fichero que
hemos guardado antes.

138

www.aprendegamemaker.com

Reemplazar sprite o Replace Sprite. Con esta accin podemos reemplazar un


sprite con el contenido de un archivo. Indicamos el sprite de la lista que detecta Game
Maker Studio, el nombre del fichero y el nmero de subimgenes que tiene. Como
vemos, los ficheros son strip, tal y como comentamos en su momento. Los formatos son
los mismos compatibles cuando estamos creando los sprites, como PNG, JPG, TIF o GIF.
Para los ficheros GIF, el nmero de subimgenes se decide automticamente. Los otros
parmetros del sprite, como su transparencia, no se cambian. Esta accin se suele
utilizar si no queremos almacenar todos los sprites en el propio proyecto, cargandolos al
principio de la room, por ejemplo. No es recomendable cambiarlo en instancias que ya
estn creadas en la room, ya que pueden pasar cosas raras con las colisiones (ya que
afecta a las mscaras).

139

www.aprendegamemaker.com

Reemplazar fondo o Replace Background. Al igual que la accin anterior,


podemos cambiar un fondo por el contenido de un archivo. No es recomendable
cambiar un fondo que ya es visible.

Pestaa de acciones de control


En esta pestaa nos encontramos con una lista de acciones relacionadas con las propiedades
de un objeto controlando casos ms complejos del juego, como poder hacer preguntas,
140

www.aprendegamemaker.com

comprobar condiciones o aadir cdigo GML. Los grupos que nos encontramos en esta
pestaa son preguntas/questions, otras/others, cdigo/code y variables.

Veamos un ejemplo
En la siguiente imagen, vemos un ejemplo del uso de estas acciones para controlar una
situacin.

Ejemplo de acciones de control

En la primera lnea, vemos que hace una pregunta de si encuentra una posicin libre. Si eso
es cierto, ir al primer bloque, lneas 1 a 4, y si no es cierto, ir a la accin else directamente
para ejecutar el otro bloque (lneas 6 a 9). En cada bloque vemos que est agrupado, se hace
de esta manera para juntar las dos acciones y que trabajen juntas, primero ejecutando una y
luego otra. Lo mismo ocurre en el bloque del else. Tambin nos ayuda a tener una mejor
visualizacin de lo que estamos haciendo lo que se dice sangrar o tabular el cdigo.
En cdigo GML, su equivalente sera el siguiente:

if place_free(x,y)

{
if irandom(2) == 0 instance_create(x, y, obj_Enemy);
}
else
141

www.aprendegamemaker.com

{
part_emitter_burst(ps, 0, 0, 0, 0);
sound_play(snd_Explode);
}
Como vemos, las dos opciones hacen lo mismo. Podemos hacerlo de las dos maneras, lo
importante es que nosotros nos veamos cmodos tanto de una como de otra. Tambin
habr cosas ms complejas que solo lo podemos hacer con cdigo GML.
Por si alguien se lo pregunta, en el primer bloque, si encuentra una posicin libre en la
posicin X/Y, crea un enemigo solo con una probabilidad de un 50%. Si no encuentra una
posicin libre, segundo bloque, estallar algunas partculas y reproducir un sonido que
hemos aadido al proyecto.

Las diferentes acciones




Comprueba vaco o Check Empty. Empezamos con las preguntas. Al poner esta
accin, pregunta si en la posicin X/Y indicada no genera una colisin con un objeto.
Podemos indicar si comprobamos solo los objetos slidos o cualquier objeto que se
halle en dicha posicin. Esa posicin se podemos indicarla Relativa a la posicin del
objeto que aadimos la accin o es una posicin absoluta de la room. Recordemos que
en la comprobacin de esa posicin necesita un objeto con una mscara vlida. Un
ejemplo para utilizar esta accin es cuando movemos un objeto y queremos comprobar
que dnde nos movemos est libre, que no nos encontremos un muro, un enemigo, etc.

142

www.aprendegamemaker.com

Comprueba colisin o Check Collision. Esto hace justo lo contrario que la accin

anterior. Devuelve verdadero, entrara en el bloque que pusiramos a continuacin, si


hay una colisin con un objeto, dependiendo del tipo de objeto que pongamos, slido o
no.

Comprueba objeto o Check Object. Mirar si en la posicin X/Y existe el objeto


concreto que le digamos. Aunque es posible marcar cualquier posicin, es posible que

143

www.aprendegamemaker.com

ese objeto est bien lejos del objeto que le aadimos la accin, esta comprobacin la
hace como si fuese un evento de colisin. Por lo tanto, necesitamos que los dos objetos
tengan una mscara vlida. Tambin influye como hemos configurado las mscaras, tal
y como hablamos en su momento.

Contar instancias o Test Intance Count. Con esta accin podemos averiguar el
nmero de instancias que se encuentran actualmente en la room. Elegimos un objeto
que tengamos definido, marcamos el nmero que nos pueda interesar y en la tercera
opcin elegimos si nos interesa marcar igual, ms grande o ms pequeo. Por ejemplo,
podemos comprobar si no existe ningn enemigo ms, object enemigo equal to 0. para
cambiar de room o aumentar la puntuacin. Si tenemos un objeto arma que no puede
disparar ms de una bomba a la vez, podemos detectar que object bomba greather
than 0, etc.

144

www.aprendegamemaker.com

Probabilidad o Test Chance. Esta accin nos permite simular el lanzamiento de


un dado, donde le indicamos el nmero de caras de ese dado. De esta manera, si
marcamos en sides 20, generara el siguiente bloque 1 de 20 veces. Cuanto ms
grande sea el nmero ms se reduce la probabilidad de que se ejecute el bloque. No
funciona poner nmeros con decimales, es decir, si ponemos 3.2, la probabilidad
funcionar como 1 de 3 veces, como si los decimales no existiesen. Lo comento
porque poner un valor ms pequeo que 1, por ejemplo 0.7, har que se ejecute 0 de 1
vez, es decir, NUNCA. Esta accin es muy utilizada en los juegos, ya que la probabilidad
puede usarse en muchas situaciones dentro de las acciones de nuestro proyecto.

145

www.aprendegamemaker.com

Comprueba pregunta o Check Question. Con esta accin aparecer una ventana
con el texto que le hayamos puesto, con unos botones de SI y NO. Si se pulsa el primer
botn ejecutar el bloque siguiente. Si pulsamos NO, no ejecutar ningn bloque, a no
ser que contenga una accin ELSE.

Comprueba expresin o Test Expression. Esta pregunta es la accin ms utilizada


para comprobaciones, ya que podemos poner cualquier expresin para testearla.

146

www.aprendegamemaker.com

Comprueba ratn o Check Mouse. Podemos comprobar que ratn se ha pulsado


con el ratn, usando los valores left, right, middle (las tres posibles opciones de
botones del ratn), o incluso el valor no, por si nos interesa saber que no se est
pulsando ninguno. Es posible que nos interese saber dnde se ha pulsado el ratn, por
lo que usaremos las variables globales mouse_x y mouse_y.

Comprueba cuadrcula o Check Grid. Si tenemos juegos que van alineados a una
cuadrcula, un juego de tablero como el ajedrez o algn rpg que funcione con
movimiento de casillas, debemos comprobar que los objetos estn bien colocados. Esta
accin nos ayuda a saber si los objetos estn colocados dentro de la grid que nosotros
digamos.

147

www.aprendegamemaker.com

Inicio de bloque o Start Block. Con esta accin agrupamos las siguientes acciones
dentro de un bloque de inicio o fin. Aunque ya lo hemos comentado, la siguiente
imagen extrada de la ayuda lo explica a la perfeccin:

Cuando ponemos una condicin o pregunta, si se cumple solo se ejecuta la siguiente


lnea (la nmero 2 de la imagen). Pero si queremos que se ejecuten todas las acciones
que vemos con la condicin, debemos ponerlos en un bloque. Lo mostramos a
continuacin.

148

www.aprendegamemaker.com

Ahora hemos incluido los bloques.

Fin de bloque o End block. Tal y como hemos indicado arriba, con esta accin
podemos finalizar un bloque.

Else (sta no la traduzco ^_^). Cuando utilizamos una accin de pregunta, todas
las que hemos comentado ms arriba, siempre nos devolver un resultado verdadero o
un resultado falso. Las acciones que aadimos justo despus de esa accin de pregunta
son las del resultado verdadero. Pero es posible que tambin queramos controlar un
resultado falso, para que haga una o ms acciones. Se utiliza la accin else para poder
controlar esta situacin.

Repetir o Repeat. Otra accin muy til, repetir una serie de acciones un nmero
de veces. Podemos especificar un nmero o una expresin para ejecutarlo, as no hace
falta duplicar acciones. Por ejemplo, si queremos crear 6 enemigos aleatoriamente, o
incrementar una serie de puntuaciones, etc.

149

www.aprendegamemaker.com

Salir de evento o Exit Event. Cuando se pone esta accin no se ejecutar las

siguientes acciones en ese evento. Muy til para hacer comprobaciones para ver si las
acciones son correctas.
Llamar a evento padre o Call Event Parent. Ya hablamos en su momento de la

herencia de objetos. Comentamos que si un objeto padre tiene acciones en un evento, y


un objeto hijo tambin tiene acciones en ese evento, SOLO se ejecutarn los eventos
del hijo. SI queremos que tambin se ejecuten los del padre, usaremos esta accin. Por
ejemplo, si en el evento Create del padre crea una serie de variables, y el mismo evento
en el hijo crea otras cosas, con esta accin podemos hacer que se ejecute el evento
padre tambin.
Ejecutar cdigo o Execute Code. Esta es la accin que utilizaremos para escribir

con lenguaje GML. Al aadirla, nos aparecer una ventana, como un editor de textos,
que podemos escribir desde una funcin sencilla hasta las cosas ms complicadas. Ya
hablaremos extendidamente sobre el lenguaje GML y todo lo que podemos hacer con
l.


Ejecutar Script o Execute Script. Si queremos usar lenguaje GML muy extenso o
que se pueda aprovechar entre diferentes objetos, es recomendable utilizar scripts.
Hablaremos en detalle cuando llegue, de momento podemos ver que podemos llamar a

150

www.aprendegamemaker.com

un script creado y pasarle hasta 5 argumentos (tambin hablaremos de los argumentos,


todo a su debido tiempo).

Comentario o Comment. Podemos aadir comentarios en nuestra lista de


acciones para hacer aclaraciones o usar frases cortas que podemos recordar que hacen
las acciones a continuacin. Poner comentarios no afecta a ningn rendimiento de
nuestro juego, as que es aconsejable poner todos los que creemos necesario. Tambin
se utiliza para disparar eventos, aunque no haya ninguna accin dentro, como los
eventos de colisin o de alarma.

151

www.aprendegamemaker.com

Asignar variable o Set Variable. Las variables es uno de los elementos esenciales
a la hora de crear nuestros juegos. En una variable podemos crear y mantener valores
para usar en nuestro objeto. Ya hemos hablado de algunas variables como pueden ser
las vidas/lives, o la puntuacin/score. Pero nosotros podemos crear todas las variables
que queramos y usarlas sin lmites. Esta accin cambia el valor de una variable concreta
(si no existe la crea con ese valor). el valor puede ser un nmero, un texto o cosas ms
complejas. Recordemos que el check Relative lo utilizaremos al asignar ese valor, para
que tenga en cuenta el valor o no ya almacenado.

Comprobar variable o Test Variable. Con esta accin podemos comprobar el


valor de una variable. Tenemos las opciones de igual, menor, mayor, menor o igual y
mayor o igual. Si utilizamos smbolos, sera =, <, >, <= y >=.

152

www.aprendegamemaker.com

Dibujar variable o Draw Variable. Con esta accin podemos dibujar el valor de
una variable en una posicin particular en la pantalla. Recordemos que solo podemos
dibujar en el evento Draw.

Pestaa de acciones de puntuacin


En esta pestaa nos encontramos con las acciones relacionadas con la puntuacin/score, la
vida/lives y la salud/health.
En muchos juegos es habitual encontrarnos con un sistema de puntos, vida o energa, por
eso Game Maker viene con acciones y variables del sistema para facilitarnos esta tarea. Por
153

www.aprendegamemaker.com

ejemplo, si usamos la accin comentada anteriormente de asignar variable y ponemos como


valor score, esa variable ya existe en el sistema, no hara falta crearla, y le dara el valor
correspondiente. Pero tambin podemos usar las acciones correspondientes que se detallan
en esta seccin.


Asignar puntuacin o Set Score. Esta accin establece una puntuacin al valor
elegido. Recordemos que se utiliza la variable global score y se puede colocar en
cualquier objeto, modificando siempre en el mismo lugar. Por ejemplo, podemos poner
en el evento Destroy de un enemigo una puntuacin de 10 (o diferente dependiendo
del enemigo). Para ello deberamos marcar el check Relative para que siempre
incremente su valor sobre la puntuacin actual. Tambin podemos poner un valor de 0
(quitando el check Relative!) al inicio del juego para reiniciar el marcador.

Comprueba puntuacin o Test score. Con esta accin podemos comprobar el


valor de la puntuacin comparando el valor de la accin con el acumulado. La condicin
puede ser igual, mayor o menor.

154

www.aprendegamemaker.com

Dibujar puntuacin o Draw Score. Podemos dibujar la puntuacin en el lugar de


la pantalla que elegimos gracias a la posicin X/Y, includo un texto de ttulo.
Recordemos que esta accin slo se utiliza en el eventoDraw.

Limpiar Tabla de puntuacin o Clear Highscore. Accin para limpiar la tabla de


puntuacin.

155

www.aprendegamemaker.com

Asignar vidas o Set Lives. Aqu tenemos otra variable de sistema que podemos
usar. Lo habitual es asignar un valor al principio del juego (por ejemplo 3) y luego
disminuir o aumentar en funcin de lo que suceda (con el check Relative). Tambin
tenemos un evento que detecta si las vidas bajan a 0 o menos.

Comprueba vidas o Test Lives. Con esta accin de pregunta podemos comprobar
el nmero de vidas, al igual que con la puntuacin. Se suele usar para cuando
asignemos vidas que no superemos un tope mximo.

156

www.aprendegamemaker.com

Dibujar vidas o Draw Lives. Al igual que con la puntuacin, podemos dibujar en
una posicin las vidas con un texto predeterminado en el evento Draw.

Dibujar imgenes de vidas o Draw life Images. En este tipo de variables es muy
habitual representar las vidas con alguna imagen en vez de un texto. En la accin
indicamos un sprite y una posicin X/Y inicial, y Game Maker dibujar tantas imgenes

157

www.aprendegamemaker.com

como vidas tengamos en ese momento. Recordemos que las acciones de dibujo slo
son vlidas en el evento Draw.

Asignar salud o Set Health. Game Maker tambin incluye una variable de
sistema que podemos establecer y cambiar su valor con esta accin. Lo habitual es que
esta variable se mueva en el rango entre 0 y 100, donde 100 es para indicar que est a
tope de energa). Cuando la Salud llega a 0 o menos tenemos un evento que lo detecta.
Es habitual combinar la Salud con las vidas, as que con el evento que detecta que no
tenemos ms energa restaramos una vida, y si llegamos a 0 vidas generar un Game
over con el evento apropiado.

158

www.aprendegamemaker.com

Puntuacin en el ttulo o Score caption. Si jugamos en juegos de Windows, Linux


o Mac, tenemos la posibilidad de mostrar la puntuacin, la vida y la energa en el ttulo
de la ventana con esta accin, includo un texto para diferenciar cada uno de ellos.

Pestaa de acciones extra


En esta pestaa encontramos acciones para crear efectos en el juego, principalmente a la
creacin y uso de las partculas. Todo el tema de partculas lo hablaremos en detalle en un
159

www.aprendegamemaker.com

post propio, tanto las acciones que vemos en esta pestaa como el cdigo GML.
Comentamos la otra accin que vemos y est relacionada con el puntero del ratn.

Asignar cursor de ratn o Set Mouse Cursor. Podemos cambiar el cursor del
ratn a una imagen que elijamos de los sprites. Tambin podemos elegir ocultar el
cursor estndar. Esta accin slo es compatible con Windows, Linux, Mac y HTML5.

Pestaa de acciones de dibujo


Todas las acciones que vemos aqu estn relacionadas con las opciones dibujar cosas en la
pantalla. Podemos dibujar texto, sprites, objetos, fondos, etc Obviamente, no tenemos que
decir ni programar nada si no queremos, ya que Game Maker dibuja todo lo que
necesitemos. Pero si queremos detallar o cambiar algo, podemos usar estas acciones.
La mayora de estas acciones slo se ejecutarn en el evento Draw y teniendo la propiedad
visible del objeto marcada, aunque veremos que existe alguna configuracin de ajustes que
podemos poner en cualquier evento.
La pestaa et dividida en las tres seccione siguientes: dibujo/drawing, ajustes/settings y
other/otros.


Dibujar el propio sprite o Draw Self. Al aadir cualquier accin al evento Draw de
un objeto, le estamos diciendo a Game Maker que en vez de pintar el sprite que tiene,
que haga caso a nuestras acciones. Es posible que nos interese pintar un nmero
160

www.aprendegamemaker.com

encima del objeto, una barra de energa, etc pero tambin queremos que pinte el
sprite que tiene asignado. Para ello usamos esta accin. Es interesante poder combinar
algunas opciones, como cambiar el sprite (sprite diferente, escalarlo o colorearlo
mediante parmetros que veremos), o hacer combinaciones de profundidad a la hora
de pintar (por ejemplo, pintar primero tu sprite y despus su energa encima).


Dibujar sprite o Draw sprite. Esta accin dibuja un sprite de la lista de recursos
que tenemos, en una posicin que le demos (recordemos que podemos usar el check
Relative para que sea la referencia de la posicin del objeto) y una subimagen del sprite(
con un valor de 0 para la primera y un nmero superior para el resto). Si el sprite es una
animacin y queremos que la dibuje como siempre, el valor de subimagen ser -1. Con
esta accin no tendr en cuenta los valores de transformacin que le hayamos
cambiado al sprite.

Dibujar fondo o Draw Background. Podemos cambiar o dibujar un fondo que sea
diferente al creado en el diseo de la room. Le marcamos una posicin, absoluta o no, y
si la imagen debe repetirse por toda la room o no (con la propiedad tiled).

161

www.aprendegamemaker.com

Dibujar texto o Draw Text. Con esta accin dibujamos texto en cualquier lugar de

la habitacin o room. Se debe indicar el texto y la posicin. Recordemos una serie de


cosas a la hora de poner texto:


Para dibujar el texto en varias lneas, se utiliza el smbolo #. Por ejemplo, el texto
Hola a todos#empezamos a aprender lo dibujara en dos lneas diferentes.

Si queremos pintar el smbolo #, debemos escribir \#, Por ejemplo: Este es el


nmero \#3.

Se puede mezclar texto y expresiones, como dibujar valores y variables. El texto


que queremos mostrar debe ir entrecomillado. Por ejemplo, para pintar la
velocidad usaramos la variable de sistema speed y el texto sera algo parecido a La
velocidad del objeto es de + string(speed).

162

www.aprendegamemaker.com

Dibujar texto escalado o Draw Scaled Text. A igual que la accin anterior, pero
con algunas propiedades ms. Podemos cambiar el tamao con las propiedades (xscale,
yscale), y la propiedad angle para girar el texto con un ngulo.

Dibujar rectngulo o Draw Rectangle. Se especifican la dos coordenadas que


corresponden a las esquinas opuestas del rectngulo, y un parmetro ms para indicar

163

www.aprendegamemaker.com

si dibuja solo la lnea del contorno o el rectngulo entero como slido. Para poder
definir los colores veremos ms adelante que existen acciones para ello.

Gradiente horizontal o Horizontal Gradient. Dibuja un rectngulo como la accin


anterior, pero dibujando un degradado de color que cambia de izquierda a derecha. Se
puede especificar tamao y posicin, adems de los dos colores del degradado.

164

www.aprendegamemaker.com

Gradiente vertical o Vertical Gradient. Igual que la anterior, pero el degradado


es de arriba a abajo.

Dibujar elipse o Draw Ellipse. Con esta accin dibujamos un crculo o una elipse.
Se especifican igualmente dos coordenadas de posicin, que sera el rectngulo desde
dnde estara la elipse por dentro y su posicin. Podemos dibujar solo el contorno o
rellenarla con el color predeterminado.

165

www.aprendegamemaker.com

Elipse con gradiente o Gradient Ellipse. Igual que el anterior, pero se puede
elegir dos colores de degradado que va del centro hasta el borde.

Dibujar lnea o Draw Line. Dibuja una lnea entre dos puntos que se especifican
en la accin, teniendo en cuenta la opcin de la casilla Relative.

Dibujar flecha o Draw Arrow. Dibuja una flecha simple igual que la accin de
dibujar lnea, especificando dos puntos de posicin. Tambin se escribe el tamao de la
166

www.aprendegamemaker.com

punta de flecha, con su tamao en pxeles, aunque eso no aade longitud al tamao
total.

Establecer color o Set color. Esta accin es donde ajustamos el color de todas las
acciones de dibujo que hemos comentado anteriormente. Se puede poner en cualquier
evento, y una vez asignado, ser el color de referencia hasta que se cambie. Esto no
afecta a ningn sprite o fondo del juego.

167

www.aprendegamemaker.com

Establecer fuente o Set Font. Establecemos la fuente para dibujar texto,


asignando uno de los recursos de fuente que hayamos definido. Si no hay fuente
elegida, coger el tipo de letra Arial de tamao 12.

Establecer pantalla completa o Set Full Screen. Con esta accin podemos
cambiar de ventana a pantalla completa, y al revs. Es una opcin que podemos incluir
en cualquier men de nuestro juego.

168

www.aprendegamemaker.com

Tomar captura de pantalla o Take Snapshot. Esta accin toma una imagen del
juego mientras se est jugando y lo almacena en un archivo PNG que se especifica en la
accin.

Crear efecto o Create Effect. Sin entrar en el tema de partculas, podemos crear
efectos basicos con esta accin, como una explosin o un fuego. Especificamos el tipo
de efecto, tamao, posicin y color. Para los efectos de lluvia y nieve la posicin no
importa.

169

www.aprendegamemaker.com

Y hasta aqu el listado de todas las acciones del programa (casi nada). Como vemos, tenemos
muchas acciones donde se pueden hacer un montn de tipos de juegos sin escribir una lnea
de cdigo. Iremos poniendo ejemplos de estos juegos, desde un shooter de aviones hasta un
juego de plataformas. Tambin veremos la equivalencia con el cdigo GML, aunque en el
prximo post veremos el uso de variables y expresiones que hemos ido comentando en
algunas de las acciones.

170

www.aprendegamemaker.com

Usar expresiones y variables en las acciones de Game Maker Studio


Hemos visto en el post anterior todas las acciones disponibles en Game Maker Studio, y con
un simple arrastrar y soltar en el evento definido es suficiente para que nuestro objeto haga
lo que nos interese. Los parmetros o propiedades de estas acciones suelen tener valores
fijos, nmeros o texto, pero a veces es insuficiente para lo que queremos hacer. Puede
resultar necesario poner una frmula o expresin para obtener un resultado que queremos.
Con Game Maker Studio es posible usar cualquier variable creada, constantes o variables
globales (como las que comentamos de puntuacin o vida) en cualquier accin que
necesitemos. Podemos incluso aadir frmulas matemticas como las que vemos a
continuacin:

Un par de ejemplos de como quedan las expresiones en una accin

Por ejemplo: cual es la diferencia entre estas dos acciones?

171

www.aprendegamemaker.com

Hay alguna diferencia entree estas dos acciones?

Ninguna, ya que tenemos una accin especfica para la puntuacin, y existe una variable de
sistema llamada scoreque, a efectos prcticos, hace exactamente lo mismo. La nica
diferencia es que cuando veamos las acciones, nos sintamos cmodos para entender lo que
hemos aadido al evento.

Variables del sistema


Hemos comentado que existen unas variables globales como score, lives o health que
podemos usar para nuestros juegos. Estas variables de sistema son globales, es decir, se
pueden utilizar en cualquier objeto y en cualquier momento que siempre modifican los
mismos valores.
Pero existe una multitud de variables que estn relacionadas con una instancia en concreto.
Las variables de instancia tiene varias categoras: existen variables relacionadas con el
movimiento, otras sobre las fsicas que se pueden aplicar, variables relacionadas con los
sprites e imgenes, paths asociados al objeto, etc La modificacin de los valores de estas
variables afectara slo a esa instancia.
La lista de variables es bastante grande, y creo que enumerarlas aqu se hara bastante
tedioso. Creo que lo mejor es hacer post con las categoras que hemos comentado y as
vemos las diferentes opciones que podemos tener a la hora de gestionarlas.

Creacin de variables
172

www.aprendegamemaker.com

Aparte de todas las variables que nos ofrece Game Maker, existe la posibilidad de crear
todas las variables que necesitemos. Es importante no usar el mismo nombre que las
existentes en el sistema para no entrar en conflicto, ya que el programa no tendra muy
claro a cual se refiere.
Ya tenemos una accin para crear variables, Set Variable, donde adems le damos un valor.
Cuando creamos una variable, esa variable se podr usar en todos los eventos y en todas las
acciones de ese objeto. Por ejemplo, si creamos la variable num_armas en en evento Create
, ya podemos usarla en cualquier evento.

Crear variables globales


Imaginemos que creamos una variable que almacena el total de enemigos muertos que
llevamos, la llamaremostotal_enemigos. Si la creamos en un objeto, o le cambiamos su
valor, esa variable estara en cada objeto o instancia que tengamos (si tuvieramos 5
instancias, habra 5 variables diferentes, una en cada objeto), lo cual en este caso no nos
interesa: queremos una variable que funcione de forma global.
Podemos crear una variable global de una forma muy sencilla, en vez de decir que se llama
total_enemigos, pondremos global.total_enemigos. Al ponerlo de esta manera, ya no
depende de un objeto, y se puede llamar desde cualquier lugar. As podemos incrementar
los enemigos que destruyamos sin ningn problema.
Al ser una variable global, se mantiene durante toda la partida, da igual que eliminemos
objetos o cambiemos de room. Solo hay que asegurarse de crearla correctamente antes de
que se utilice, con un objeto al principio de la room o al principio del juego.

Tipos de datos en las variables


Hemos comentado anteriormente que una variable puede ser un nmero, una frase, etc. A
esto es lo que llamamos tipos de datos. Tenemos diferentes tipos de datos, algunos sencillos
y otros ms complejos:


cadena o string: es un conjunto de carcteres, que para agruparlos utilizamos las


comillas .

nmero o real: los nmeros almacenados siempre tienen decimales (aunque esos
decimales valgan cero).

173

www.aprendegamemaker.com

boolean: ya lo hemos comentado. Podemos decir que solo se almacena un bit, o sea,
solo puede tener valor 0 o 1. Esos valores son equivalentes a poner true o false, para
tener una fcil interpretacin.

arrays: es un listado de valores (nmeros o cadenas, por ejemplo) con un ndice


numrico para acceder. Hablaremos de arrays cuando toquemos el lenguaje GML.

Estos son los tipos de datos sencillos. Tenemos muchos tipos ms, podemos gestionar fechas
(aunque se almacenan como un nmero), tipos llamados enum, que son una lista de valores
fijos (constantes), punteros, para gestionar buffers. Tambin tenemos otros tipos de datos
complejos que gestionan listas, colas, mapas, etc, que veremos en detalle prximamente.

Expresiones en acciones
Ya hemos visto que podemos usar tanto las variables de sistema como las que creemos en
las acciones de nuestro juego. Podemos poner 100/3, pero tambin podemos usar variables
creada y poner 100/total. Estas expresiones pueden ser todo lo complejas que queramos.
Cuando una variable es de un tipo, no podemos mezclarlos entre ellos, ya que dar un error
de programa. Por ejemplo, si la variable nombre que tiene el valor Jugador, le decimos ahora
que se incremente en 5, dar un error. Pero, y si tenemos la variable global.total_enemigos
y queremos mostrar el texto Total de enemigos: 5? Si en el evento Draw
accin

Draw

Text

ponemos

el

texto

Total

aadimos la
de

enemigos

global.total_enemigosmostrar eso tal cual. Si ponemos Total de enemigos +


global.total_enemigos, estamos mezclando una cadena con un nmero, lo cual no es
correcto. Afortunadamente, todos los lenguajes de programacin, y tambin Game Maker,
tienen en cuenta este tipo de problemas y tenemos funciones y scripts que cambian estos
tipos de datos. Lo correcto sera poner Total de enemigos + string(global.total_enemigos).
Vemos que al aadir la funcin string, le estamos diciendo que cambie un nmero a una
cadena, lo cual sera correcto (recordad que podemos hacer esto hola + mundo, ya que
sumar estas dos cadenas es juntarlas). As que ahora hablaremos de las funciones
brevemente.

Funciones en Game Maker Studio


Ya hemos visto que existen variables de sistema, pero tambin existen funciones de sistema.
Estas funciones hacen un grupo de instrucciones, al igual que cuando aadimos acciones a

174

www.aprendegamemaker.com

un evento. Por ejemplo, la funcin string() hace las instrucciones necesarias para que cuando
le pasemos un nmero transforme ese nmero en una cadena.
Es posible pasarle valores a una funcin, no es obligatorio, y se pasan dentro de los
parntesis que vemos. Ya hemos visto que en string() se le pasa la variable con el nmero,
pero otra funcin de sistema es draw_text() y en ella se le pasan tres valores: la posicin x, la
posicin y, y el texto que queremos mostrar. Por ejemplo draw_text (100, 150,
INVENTARIO). Tambin podemos poner draw_text (x 50, y, INVENTARIO), y estaramos
usando variables del objeto, o globales, etc.
El listado de funciones es tan grande o ms como el de variables del sistema, adems que
podemos crear nuestras propias funciones en el apartado de Scripts, pudiendo personalizar
nuestras acciones como si fueran funciones globales que podemos usar en cualquier objeto.
Como podemos ver, las posibilidades que se nos ofrecen son infinitas, y todava no hemos
tocado nada de cdigo GML! En los prximos posts hablaremos de los recursos que nos
faltan y empezamos ya con ejemplos de juegos reales que podemos hacer sin tener que
programar nada.

175

www.aprendegamemaker.com

Creando Rooms en nuestros juegos


Una room o habitacin es el espacio donde ocurre toda la accin en nuestros juegos. En esa
room colocamos nuestros instancias de los objetos que hemos definido y, al ejecutar nuestro
juego, empezarn a generar los eventos que hemos programado. Como mnimo debemos de
tener una room en nuestro proyecto, pero podemos tener muchas ms que definen cosas
muy diferenteS: niveles de nuestro juego, mens de inicio, de pausa, etc. Cuando
aadimos/editamos una room de nuestro rbol de recursos, nos aparecer una ventana
como sta:

El editor de rooms

Vemos que la mayor parte del editor de rooms lo ocupa la visualizacin de como queda la
room, donde colocamos objetos, fondos completos o tambin tiles, pero tenemos varias
opciones tambin: botones, pestaas y una barra de informacin para ayudarnos a
configurar la room de nuestro juego.

176

www.aprendegamemaker.com

Barra de herramientas del editor de rooms


En la parte superior podemos encontrar una barra de herramientas con varios botones.
Estos botones hacen diferentes acciones que vamos a explicar a continuacin:


Confirmar: guardamos los cambios y cierra la ventana del editor de rooms. Al hacer esto
no veremos ninguna ventana de confirmacin, no como en otras ventanas, as que
tenemos que tener especial cuidado al hacerlo. Pero si podemos configurar una cosa (lo
vimos en las Preferencias globales (enlace del programa) y es que si queremos que nos
pregunte si eliminamos todas las instancias que hay fuera de la habitacin o no.
Dependiendo de cmo hemos aadido esas instancias nos puede interesar que se
borren o no.

Deshacer: podemos deshacer NICAMENTE la ltima accin que hemos hecho.

Acciones de instancia: estos botones nos permite cambiar algunos valores de las
propiedades de las instancias (y de los tiles si estamos en la pestaa adecuada).
Podemos eliminar todas las instancias que tenemos en la room (para volver a empezar a
colocarlas), cambiar la posicin de todas las instancias al valor que le quieras dar
(aparece una ventana) y bloquear o desbloquear instancias (de esta manera nos
aseguramos que no se movern accidentalmente del lugar dnde se han colocado).

Grid o rejilla: podemos decir el ancho y alto de la grid que se muestra en la room, para
facilitarnos cuando colocamos objetos.

Tipo de grid: si queremos una rejilla 2D normal o isomtrica.

Opciones de visualizacin: se abrir un men con todas las opciones que podemos
activar o desactivar para mostrar mientras editamos la room: objetos, objetos invisibles,
objetos sin sprites, fondos, tiles, etc.

Opciones de zoom: tenemos tres botones para ampliar, reducir o dejar el zoom a
tamao real.

Orden de instancias: nos abrir una ventana donde podemos cambiar el orden de las
instancias que hemos colocado. Muy importante para la activacin de algunos

parmetros o la creacin de variables globales.


Informacin de accesos directos: se nos abre una ventana con la informacin de las
acciones directas relacionadas con el editor de room. Sabremos cmo aadir objetos,
seleccionar varios, eliminarlos, alinearlos al grid, etc. combinando el ratn con algunas
teclas. Si no tenemos muy claro como funciona la edicin, siempre podemos tener esta
ventana activa.

Minimapa
177

www.aprendegamemaker.com

Si queremos ver como va quedando nuestra room, tenemos una representacin pequea del
tamao total de la room. As podemos movernos por toda la room rpidamente, da igual el
tamao de la room o si le hemos aplicado un zoom grande o pequeo, simplemente
situndonos en el minimapa y movindonos en l.

Barra de informacin
En la parte de abajo podremos ver informacin adicional cuando colocamos objeto so tiles
en la room. Podemos ver la posicin actual del ratn, parap oder situarnos, el nmero de
instancia cuando nos colocamos por encima del ratn, y si una instancia tiene cdigo
personalizado.

Las pestaas del editor


A la izquierda vemos un grupo de seis pestaas para configurar diferentes aspectos. Vamos a
verlos a continuacin.

Ajustes
En la pesaa de Ajustes vemos la configuracin bsica de la room. Las opciones que
podemos cambiar son:


Nombre: el nombre de la room es su identificador nico, es decir, tendr un nombre


que no podr repetirse en todo el proyecto. De esta manera podemos saber que nos
referimos a este recurso. Lo habitual es llamarloroom_ + un nombre. Este nombre lo
podemos usar en los objetos, ya sea por cdigo GML o las acciones relacionadas que ya
hemos visto.

Ancho y alto: es el tamao total de la room. Es importante optimizar el tamao de la


room, ya que hacer rooms grandes implican un gran consumo de recursos. Por ejemplo,
pensemos en un juego de naves espaciales, quizs creemos que necesitamos una room
enorme. Pero no es necesario hacerlo de esta manera, con que lo programemos
correctamente ser suficiente. Ya veremos un ejemplo en prximos posts.

Velocidad: La velocidad de la room son el nmero de pasos por segundo que ejecutar
Game Maker Studio. La velocidad no tiene nada que ver que los fps, frames por
segundo, que suelen tener un valor diferente. La velocidad es un valor constante donde
Game Maker la utiliza para generar los eventos y las acciones, como puede ser el
movimiento de los sprites, y los fps es la velocidad real de tu juego. El valor habitual es
30, a veces se puede poner el doble, y raramente se suele poner ms de ese valor. Todo
178

www.aprendegamemaker.com

depender del tamao de las rooms, las instancias que contiene y si el cdigo de los
objetos suponen mucho coste de procesador, ya que mayor velocidad implicr reducir
los frames por segundo. Lo dicho, no se suele cambiar su valor de 30, pero se puede
valorar aumentarlo si hemos valorado sus opciones.


Persistente: normalmente, al entrar en una room, nos la encontramos con sus valores
iniciales, tal y como la hemos diseado. Eso significa que si hemos diseado un juego
donde se sale de una room y queremos volver a entrar, se pierde tal y como est el
juego. Si queremos mantener esos valores, dnde estn las instancias en ese momento,
como puede ser en un juego RPG, debemos marcar el check de Persistent. Cuando se
vuelve a esa room, se recordar el estado tal y como se dej. Recordemos que los
objetos tambin pueden ser persistentes, eso significa que se mantendrn cuando
cambiemos de una room a otra.

Orden de instancias: para controlar que un objeto se cree antes que otro, se necesita
saber en qu orden se van a crear las instancias. Con el botn que vemos en esta
pestaa podemos seleccionar cada un a de las incluidas en la room y cambiar su orden
de creacin. En la lista que vemos, las que estn ms arriba se crearn antes de las que
estn ms abajo. Si un objeto crea nuevas instancias en su evento Create

, stas se

ejecutarn inmediatamente antes del siguiente de la lista. Adems de cambiar el orden,


desde aqu podemos editar el objeto relacionado, eliminar la instancia o aadirle cdigo
de creacin a esa instancia en concreto.

Fondos
Dentro de esta pestaa podemos configurar el fondo de la room. El fondo puede ser un
color, una imagen o una combinacin de una imagen con zonas transparentes y un color. Las
opciones son:


Dibujar color de fondo. Activamos esta opcin para que dibuje un color. El color lo
podemos seleccionar o cambiar un poco ms abajo. Vemos que podemos elegir una
serie de colores predefinidos o personalizarlo al gusto. El color de fondo lo solemos
utilizar cuando no tenemos imagen de fondo que cubra toda la room, as que si
tenemos claro que no es necesario activarlo lo desmarcamos y nos ahorramos tiempo
de proceso.

Nmero de fondos. Debajo de la seleccin de color, tenemos una lista de hasta 8


fondos numerados. Ninguno de estos est activo, as que hay que definirlos para

179

www.aprendegamemaker.com

poderlos mostrar. Por ejemplo, seleccionamos Background 0 y todas las opciones que
aparecen abajo se refiere al elemento seleccionado. Veamos esas opciones.


Visible when room starts. Decidimos si el fondo ser visible o no al arrancar esa
room. Lo habitual es definir un fondo visible, pero nos puede interesar configurar
otro y activarlo ms tarde, con los dos fondos a la vez o intercambiarlos. Si
tuviramos fondos con zonas transparentes podramos tener activos varios fondos
a la vez.

Foreground image. Lo habitual es que el fondo se sita por detrs de todos los
elementos, pero es posible que nos interese que se site en primer plano, por
encima de las instancias.

Background select. En esta opcin aparecer una lista de todos los fondos
disponibles en el rbol de recursos y seleccionar uno de ellos.

Tile Hor. y Tile Vert. Es para aplicar un mosaico del fondo, es decir, repetir el
fondo seleccionado horizontal o verticalmente hasta el infinito. Vemos que
podemos elegir la posicin X/Y desde dnde empieza la repeticin.

Stretch. Con esta casilla elegimos extender la imagen de fondo a todo el alto y
ancho de la habitacin. Dependiendo del tamao de la imagen respecto a la room,

es posible que se distorsione al cambiar su ratio.


Horizontal y Vertical speed. Podemos elegir que el fondo se mueva! Poniendo
valores positivos haremos que se desplace hacia la derecha, y con valores negativos
hacia la izquierda. Con la velocidad vertical ser idntico, pero arriba y abajo. La
velocidad se calcula por pxeles por paso, as que no puede tener valores con
decimales. Esta opcin es muy interesante si la combinamos con tiles o baldosas, ya
que daremos la sensacin de habitacin infinita gracias al movimiento del fondo.

Objetos
La pestaa de objetos sirve para seleccionar un objeto del rbol de recursos y colocar sus
instancias en la room. Primero elegimos el objeto de la lista seleccionable, una vez
seleccionado veremos una previsualizacin de su sprite asociado. Colocaremos las instancias
en el rea ms grande de la ventana, con el botn izquierdo del ratn. Si el objeto no tiene
sprite no se ver la previsualizacin, pero al aadir la instancia veremos un icono que nos
servir de referencia.


Propiedades de la instancia. Una vez colocada la instancia, podremos ver una serie de
propiedades que nos permitir personalizar nicamente esa instancia. Vamos a ver:

180

www.aprendegamemaker.com

ScaleX: Nos permite cambiar la escala o tamao en el eje x del objeto. Un valor de
1 es por defecto, podemos ampliar ese valor o incluso usar negativos para hacer un
efecto de espejo.

ScaleY: Cambiamos la escala en el eje y del objeto. Tambin podemos voltear la


instancia con valores negativos.

Rotation: gira la instancia respecto su origen X/Y. Su valor se mide en grados.

Alpha: para medir su transparencia, con valor entre 0 y 255, siendo 255 totalmente
opaco y 0 totalmente transparente.

Colour: con un valor predeterminado de blanco, dejar la instancia tal cual, pero
con cualquier otro valor la colorear mezclandolo con el sprite asignado.

Flip X: Har un efecto de espejo, que es lo mismo que hemos comentado con
ScaleX al poner un valor de -1.

Flip Y: Igual que la anterior, pero voltendolo verticalmente.

Tambin podemos cambiar los valores de escalado de una instancia haciendo click en ello y
arrastrando una de las esquinas del recuadro que aparece.


Check Delete Underlying: cuando colocamos instancias en la room, es posible que estn
una encima de las otras, poniendo en la parte superior la ltima. Si no nos interesa que
se haga as, marcando esta opcin eliminaremos las instancias que estn en la misma
posicin. Para saber si una instancia est encima de otra se mirar si colisionan sus
mscaras.

Shortcuts: en la parte inferior de la pestaa vemos los atajos que podemos combinar
con el ratn y el teclado para hacerlo todo ms fcil. Vemos que podemos alinear a la
grid, usar la seleccin mltiple, acercar o alejar con la rueda del ratn

Tiles o baldosas
Ya hablamos de los Tiles cuando comentamos cmo funcionan los fondos en Game Maker.
Ahora vamos a ver cmo lo aplicamos a nuestro juego.
En esta pestaa vemos como trabajan los tiles. Antes de nada, hay que elegir un fondo que
hemos preparado para que funcione con baldosas, marcando el check Use as tile set, y nos
aparecer la previsualizacin del fondo en la misma pestaa, con un cuadrado o rectngulo
marcado. Si hacemos click en la imagen, vemos que el cuadrado cambiar dependiendo de la
zona donde pulsamos, que es como hemos definido los tiles en el fondo (altura, anchura,
separacin, etc). Una vez elegida la zona que nos interesa, ya podemos colocarlo en la room,
dnde dibujar ese trozo de fondo que tiene marcado. Si ya existen azulejos en la room en el

181

www.aprendegamemaker.com

mismo lugar donde lo colocamos, se eliminarn de forma permanente, a no ser que


desmarquemos el check Delete underlying.
Podemos colocar tiles con el botn izquierdo del ratn, y eliminarlas con el derecho, pero
tambin existen algunas combinaciones del teclado que podemos usar.


Con la tecla <Mayus>, aadir azulejos uno detrs de otro.

Con la tecla <Ctrl>, moveramos una baldosa a una nueva posicin.

Con la tecla <Alt>, para cambiar temporalmente el ajuste a la grid definida en la room.

Si tenemos la tecla <Ctrl> y pulsamos el botn derecho, aparece un men con estas
opciones:


Eliminar: elimina el tile actual en la profundidad actual.

Borrar todo: elimina todos los azulejos que se encuentran en esa posicin, da igual la
profundidad.

Propiedades de tile: abrir una ventana para cambiar algunas propiedades al igual que
un sprite, como la escala, rotacin, mezcla de color, alfa, etc.

Cambiar posicin: aparece una ventana para escribir la posicin X/Y, as se ajustara de
una manera ms precisa.

Ajustar a la cuadrcula: ajusta el tile con la cuadrcula definida en la room.

Bloquear: bloquea el tile en la posicin y evita que se borre. Se puede desbloquear en


esta misma opcin.

Renombrar la instancia: podemos establecer un valor fijo y as usarlo para


referenciarnos a l, mediante cdigo GML.

Es posible que el tamao que hayamos elegido para los azulejos no sea exactamente el
tamao que queramos, porque a lo mejor agrupa a varias fechas, por ejemplo. Si no
queremos cambiar la configuracin que tenemos en el fondo, podemos hacerlo de otra
manera. En la previsualizacin de la pestaa, si pulsamos la tecla <Alt> y arrastramos el
ratn, seleccionaremos una nueva rea rectangular, que podemos colocar en la room como
si fuera un tile normal. SI ese rea queremos que se ajuste a la configuracin predefinida,
para elegir varias baldosas, lo podemos hacer con la tecla <Mayus>. Tambin existe otra
opcin muy interesante: con la tecla <Ctrl> usaramos la grid definida en la room para
seleccionar el tile que queramos. As podemos trabajar con diferentes tamaos de tiles para
aadir en nuestro nivel del juego.
Hemos comentado que existe una profundidad en los azulejos, que es el nmero que vemos
en la pestaa, informado como una capa. Podemos definir capas o diferentes profundidades,
nos pone por defecto el valor 1000000, para definir una profundidad detrs de todas las
182

www.aprendegamemaker.com

instancias y objetos. Podemos aadir nuevas capas de profundidad con el botn Add, y as
tener varias capas para los tiles que se puedan solapar en la misma posicin. Estos valores
de profundidad tambin influyen con los que hemos definido en los objetos. Por ejemplo,
por defecto un objeto tiene undepth de 0, si creamos una capa para los tiles de -100, estos
quedaran por encima de ese objeto.
Si eliminamos una capa eliminar todos los tiles aadidos con esa capa. Con el botn Change
cambiamos el valor de profundidad, y si esa ya existe con tiles, se fusionarn todos.

Vistas
En esta pestaa encontramos una de las opciones ms importantes a la hora de configurar
nuestro juego en la room. Las views y vistas son un sistema para dibujar slo una parte, o
varias, de la room en diferentes lugares de la pantalla. Tambin podemos mostrar slo una
parte de la room que cubre toda la pantalla, como en muchos juegos de plataformas (que
adems, la vista sigue al personaje principal) o los juegos de rol. En juegos de dos jugadores
podemos configurar la pantalla para dividirla donde cada jugador ve su parte.
En la parte superior de la pestaa nos encontramos con varios checks de activacin. El
primero es para activar el uso de las vistas, podemos tenerla configurada y desactivarla o
activarla cuando queramos. Despus, tenemos los check Clear Background with Window
Colour y Clear Display Buffer with Window Colour. Se utilizan cuando tenemos varias vistas
superpuestas. Si en la ventana o pantalla tenemos huecos que no cubren las vistas, lo
rellenaremos con un color que definamos. Si no es as, si la view cubre toda la pantalla,
entonces podemos desactivar estas opciones y ahorra a la hora de redibujar.
Debajo de estas opciones tenemos una lista de las posibles vistas disponibles, con un
mximo de 8, y en la parte inferior las opciones de cada una de las vistas cuando las
seleccionemos. Primero indicamos si la vista debe ser visible cuando la room empieza
marcando la primera casilla (se puede activar tambin por programacin). Si est activa
aparecer en negrita en el listado.
Cuando definimos la vista, tenemos dos grupos de valores, donde pone View in room y Port
on screen. Aunque los valores de X, Y, W, H son iguales en cada grupo, se refieren a cosas
diferentes. En la primera opcin, definimos la vista, el rea de habitacin que vamos a
mostrar en pantalla. en la segunda opcin definimos el puerto, que es el rea de la pantalla
donde vamos a dibujar la visto. Veamos un ejemplo.
Podemos tener una room de 50003000, pero no nos interesa mostrarla completa, porque
es un juedo RPG. Definimos la vista de 640480 en la room, y establecemos el puerto a
183

www.aprendegamemaker.com

320240. Cuando activamos las vista podemos ver un marco en la room de como queda, con
el tamao de 640480 vemos el trozo que mostrara. Y que veremos cuando ejecutamos el
juego? Pues lo veremos al tamao que hemos definido en el port (podemos decir que es un
zoom de la vista), es decir 320240. Podramos duplicar el tamao de la vista en el port sin
tocar el rea que queremos mostrar.
Estos tamaos que hemos comentado corresponden a los valores de W (ancho) y H (altura).
Tambin podemos mover inicialmente la posicin inicial de la vista con los valores X/Y.
Como ya hemos comentado, podemos tener varias vistas activas, y jugar con el port para
mostrarlo. Por ejemplo, podemos tener una vista que muestra una parte de la room y otra
que la muestra entera, pero con un port muy pequeo y utilizarlo de mapa. Con los valores
X/Y del port podremos colocarlo donde queramos.
Para que la vista se mueva, le podemos decir un objeto de referencia, con el fin que siga ese
objeto (con la vista centrada). Se puede hacer fcilmente eligiendolo de la lista en la opcin
Object following. Si hay varias instancias slo elegir una de ellas. La vista se mover junto
con el personaje, aunque podemos definir cuando empieza a moverse con los valores Hbor y
Vbor. Por ejemplo, si definimos esos valores con 64, la vista no empezar a moverse y seguir
al personaje hasta que ste llegue a 64 pxeles del borde de la vista.
Para finalizar, podemos indicar a qu velocidad se mueve la vista, con los valores Hsp y Vsp.
Por defecto tiene un valor de -1, que significa que se mueve al instante en que se mueve el
objeto seleccionado. Con un valor de 0 la vista no se mover en absoluto, y con un valor
positivo la vista seguir al personaje con ese valor.

Fsica
Las opciones que nos ofrece trabajar con fsicas en nuestros proyectos nos ayuda a crear
ms realismo a nuestros juegos. Ya hablamos brevemente de como usar la fsica en los
objetos, ahora vamos a verlo en las rooms.
Para que las variables de fsica tengan efecto en la habitacin, lo primero de todo es activar
la primera casilla, dnde pone Room is Physics World. Ahora podemos modificar las
propiedades bsicas, que es la direccin de la gravedad y la fuerza que se mide en pxeles.
Para los parmetros ms avanzados ya usamos funciones especficas de GML, pero con estos
pequeos cambios ya tenemos nuestra room preparada para el uso de physics.

184

www.aprendegamemaker.com

Fuentes: como cambiar los textos en tu juego


Cuando dibujamos texto en nuestro juego, siempre lo hace con el mismo tipo de letra: Arial
a 12 puntos, pero seguramente nos interesa cambiarlo. Para eso, Game Maker Studio nos
proporciona una opcin en el rbol de recursos, la posibilidad de aadir fuentes a nuestro
juego, y luego lo activamos con la accin correspondiente.
Para aadir una fuente a nuestro proyecto, vamos a Resource Create Font y aparecer la
siguiente ventana:

Como siempre, le damos un nombre nico a nuestro fuente, habitualmente con prefijo fnt_,
para as identificarlo en nuestro juego. Despus elegimos una fuente de la lista que aparece,
que son las que hay definidas en el ordenador. Ms abajo podemos configurar el tamao, la
negrita y la cursiva, para activarlo o no. Tambin podemos decidir elanti-aliasing, que es el
suavizado de bordes que utilizar.
A la derecha vemos el rango de letras que utilizar, y se ve una previsualizacin de como va
quedando dependiendo de las propiedades que vayan cambiando.

El rango de la fuente
Por qu hay que decidir un rango de la fuente? Game Maker transforma la fuente en una
imagen con todas las letras, as se asegura que exista dnde se vaya a ejecutar el juego. Por
eso, si vamos a usar una fuente slo para mostrar la puntuacin, no es necesario tener las
letras almacenadas como imagen, solamente los nmeros.
Una fuente tiene habitualmente 256 caracteres, pero solo usamos una pequea parte de
ellos. Por ejemplo, si usramos nmeros usaramos solo 10. Para saber el rango que

185

www.aprendegamemaker.com

debemos usar, borramos el actual con el botn Clear all y le damos al botn con el smbolo
+. Abrir la siguiente ventana:

Ventana para elegir el rango de fuentes

Esta ventana tiene unos botones para ayudarnos a elegir los caracteres:


el rango normal con las opciones ms estndar, letras, nmeros y caracteres como ! ?.

el rango dgitos con los nmeros.

el rango letras slo con letras.

y todo el rango.

Si elegimos normal vemos que aparece del 2 al 127. Por qu? Porque son los caracteres
ASCII asociados a las letras. Para entenderlo mejor, echad un ojo a la Wikipedia y mirad los
carcteres imprimibles ASCII.
Tambin hay dos botones interesantes, con el texto From Code y From File. En el primero
analiza todos los textos que tenemos en nuestro proyecto de Game Maker y pone el rango
de las letras que usamos. En la segunda opcin lo hace con un fichero de texto. As nos
aseguramos que solo usaremos los necesarios.

186

www.aprendegamemaker.com

Grupos de textura
Con las opciones de pago de Game Maker podemos gestionar nuestras texturas de
imgenes, que explicaremos ms adelante. En una fuente podemos elegir en cul grupo de
textura se guardar, ya que hemos dicho que se transformarn a imgenes.
Eso implica que si exportamos el proyecto a un fichero GMZ, la fuente no se incluir en el
proyecto, ya que la lee del ordenador (solo se transforma en imagen cuando ejecutamos el
juego, no con Game Maker). Si abrimos el proyecto en otro ordenador, tenemos que
asegurarnos que la fuente tambin existe.
Por lo que hemos visto, un recurso de fuente viene con el tipo de letra y su tamao. Eso
significa que si queremos la misma fuente con diferente tamao, debemos de aadir dos
recursos. Lo habitual es usar el recurso fnt_Arial_12 y tambin tener el otro tamao como
fnt_Arial_16.
Hasta aqu hemos hablado de todo lo relacionado con las fuentes, uno de los recursos ms
sencillos de usar. Como resumen, indicar que no nos tenemos que preocupar si quin
ejecuta nuestro juego tiene o no la fuente, ya que la crea como imagen. Por contra, si
queremos usar la misma fuente pero con tamao distinto, Game Maker la trata como otra
fuente diferente. Al menos para usar distintos colores no hace falta tratarla as. Hay que
valorar usar un rango adecuado para no aadir ms tamao a nuestro juego.
Veremos en posts prximos como usar las fuentes mediante cdigo GML, y ejemplos en las
acciones de dibujo de texto que ya hemos visto.

187

www.aprendegamemaker.com

Como se definen paths en un juego


Imaginemos que nos interese que algn objeto, un enemigo por ejemplo, sigue un camino
predefinido: puede ser que rodee un edificio, que haga un camino arriba o abajo o
simplemente que su camino sea un crculo. Programar esa serie de movimientos mediante
acciones puede llegar a ser difcil. Al ser una cosa bastante comn en los videojuegos, Game
Maker tiene un recurso propio para tratar con este tema. Tiene un editor propio de rutas y
trayectoria.

Qu son las rutas o paths


Las rutas o paths las podemos ver como un recurso ms del rbol, que vemos a la izquierda.
La idea es muy simple: dibujamos el camino en el editor que nos proporcionan y colocamos
la accin o el cdigo GML al objeto que queremos asociar a ese path, para que siga ese
camino en particular. Tambin podemos ajustar algunos parmetros, en el momento de
asignar la ruta o ms adelante, como puede ser la velocidad, incluso pararse en algn
momento, cambiar de sentido del camino y algunas ms que ya vimos en su momento con
las acciones. Tambin tiene su equivalencia con el lenguaje GML. Pero ahora vamos a ver
como funciona el editor.

El editor de paths
Para crear una nueva ruta, podemos ir a la opcin de men Resources Create Path, o desde
el botn derecho en el rbol de recursos. Nos abrir el editor de paths, que es la ventana
que mostramos a continuacin:

188

www.aprendegamemaker.com

Editor de paths vaco

Vemos que la mayor parte del editor es para ver representar visualmente el path que vamos
a dibujar, pero tambin tenemos una serie de informacin y botones que vamos a explicar a
continuacin.

Informacin del path


Al igual que hacemos con un sprite, objeto o sonido, hay que dar un nombre nico a las rutas
que creamos, as que lo habitual es llamarlo con el prefijo path_ + nombre. Cuando ya
tenemos el nombre, podemos ir dibujando el path en el rea derecha del editor. Haciendo
click con el botn derecho del ratn, iremos dibujando puntos, viendo que tendremos una
lnea que los ir recorriendo.
El punto del cuadrado de color verde ser el de comienzo de la ruta, los puntos azules son
los puntos que continan la ruta y el punto rojo es el punto seleccionado. La lnea amarilla
ser la ruta que har el objeto asignado. Conforme aadamos puntos, veremos que crece la
lista de puntos, con sus coordenadas, a la izquierda.
Para poder seleccionar el que queramos y modificar su posicin, solo hay que hacer click en
la lista y luego moverlo arrastrando en la ventana dnde ms nos interesa.

Barra de herramientas

189

www.aprendegamemaker.com

En la parte superior tenemos una barra de herramientas con una serie de botones que
vamos a detallar:


Confirmar: Cierra la ventana del editor y guarda los cambios hechos. Como no pregunta
si queremos guardar, sino que lo hace automticamente, tenemos que tener cuidado
con los cambios hechos.

Deshacer: deshace solamente el ltimo cambio.

Acciones de puntos: Estos botones cambian todos los puntos del path, con acciones
especficas. Estas acciones son:


Borrar todo el path. Para empezar a crearlo de nuevo.

Invertir camino. Vemos que el punto de origen va cambiando de todos los que
hemos aadido.

Desplazamiento. Mueve el path entero a una distancia horizontal o vertical de


pxeles.

Efecto espejo horizontal.

Efecto espejo vertical.

Rotar. Definimos un ngulo y cambia todos los puntos respecto el centro del path.

Escalar. Mediante un valor de porcentaje podemos ampliar o reducir la ruta


definida.

Acciones de visibilidad: permite encuadrar la vista que tenemos con el path que
estamos haciendo, movindola en algn lado o centrndola.

Acciones del editor: aqu podemos cambiar el tamao de la grid, para dibujar mejor
nuestra ruta, o seleccionar una room concreta como plantilla para dibujar nuestro path.
Si ya tenemos una room definida, poder dibujar la ruta con la room de fondo es super
til para ver como queda.

Control de los puntos de la ruta


Tenemos tambin una serie de botones para aadir y eliminar puntos, debajo de la lista de
puntos que vamos aadiendo. Estas acciones siempre tienen referencia al punto que
tenemos actualmente marcado. Por ejemplo, si le damos al botn Add, copiar el punto
actual y lo aadir al final. Si le damos al botn Insert, copiar el punto y lo aadir a
continuacin (til para hacer correcciones al path. El botn Delete eliminar el punto
marcado.
En cada punto seleccionado, vemos que carga los valores de X/Y, por si queremos modificar
sus valores a mano y as afinar ms. Pero tambin tenemos el valor sp, que es la velocidad
del path. Con un valor por defecto de 100, significa que la velocidad funcionar tal y como lo
190

www.aprendegamemaker.com

hayamos definido en la accin (100 es un porcentaje), es decir, si tenemos un valor de 4


pxeles por paso, siempre lo har a esa velocidad. Si un punto le hemos puesto un sp de 50,
el objeto ir a 4, pero conforme se acerque a ese punto ir reduciendo su velocidad hasta
que llegue a la mitad, y luego lo aumentar hasta que llegue al prximo punto con sp 100. Lo
hara igual si pusiramos un valor ms grande de 100, aumentando la velocidad. De esta
manera podemos variar la velocidad sin que tengamos que programar nada.
Abajo a la izquierda de la ventana, tenemos otros parmetros para modificar la ruta que
hemos trazado (la lnea amarilla). Podemos elegir si la ruta ser cerrada o no mediante el
check Closed, uniendo el ltimo punto con el primero. Tambin podemos decidir si la ruta
ser una lnea recta o una lnea curva. Con una lnea recta pasar por todos los puntos que
hemos definido, pero con una lnea curva crear un camino ms suavizado que no tiene que
pasar por algunos puntos. Podemos especificar si queremos que sea muy precisa la curva o
ms suave, en la casillaPrecision, con valores que van entre el 1 y el 8. Aqu un ejemplo de
como quedan diferentes opciones:

Diferentes opciones de path con los mismos puntos. La primera es con lneas rectas, la segunda con precisin 2 y
la ltima con precisin 8.

Barra de informacin
En la parte inferior de la ventana tenemos una barra de informacin, al igual que nos
podemos encontrar en otros editores como el editor de rooms. Veremos las coordenadas
X/Y del ratn, as como el rea visible de la room. Tambin vemos las coordenadas de la ruta
comparadas con el rea de la room. As podemos ver que rea ocupa comparado con el
tamao total de la habitacin.

Asignar una ruta a un objeto

191

www.aprendegamemaker.com

Hemos comentado al principio que existen acciones especficas para asignar una ruta a un
objeto y definir qu hace con esa ruta, cuando empieza, si se para, si cambia de velocidad
Aunque para la mayora de casos es ms que suficiente con estas acciones, con el lenguaje
GML no solo podemos variar estos comportamientos, sino que tambin podemos variar los
caminos definidos por cdigo. Podremos crear un ruta desde cero, aadir puntos, cambiar
puntos ya definidos, mover toda la ruta, etc Todas las acciones del editor podemos
hacerlas en mitad de nuestro juego, as que las opciones son infinitas.

192

www.aprendegamemaker.com

Como usar TimeLines


Los Timelines o lneas de tiempo son rutinas que podemos programar para que ocurran
ciertas cosas en ciertos momentos en el tiempo. Sabemos que existen los eventos de
Alarma, que podemos activar cuando queramos, pero con los timelines podemos hacer
cosas ms complejas de una manera ms sencilla (recordemos que tenemos 12 alarmas, en
algunos casos puede ser poco).
En un timeline especificamos las acciones que deben ocurrir, y todas esas acciones tambin
estn disponibles para un objeto en sus eventos. Cuando creamos un timeline se asocia a un
objeto, al igual que hicimos con las rutas, y la instancia de ese objeto ejecutar las acciones
que hemos puesto en el timeline.

Un par de ejemplos
Por ejemplo, imaginemos que hacemos un juego arcade de naves, y queremos que a los 2
segundos de empezar el juego aparezca un enemigo, al cabo de 5 segundos 3 enemigos ms,
etc. Podemos crear una alarma por cada enemigo activadas con diferentes steps, o una
alarma que vaya cambiando de tiempo de activacin cada vez. Pero es mucho ms sencillo
crear un timeline, asignarle en cada momento los enemigos que se van a crear y ejecutar el
timeline al principio de la room.
Otro ejemplo, imaginemos que hacemos en un juego RPG que un personaje se mueva de la
siguiente manera: 20 steps hacia la izquierda, 15 hacia arriba, 20 steps hacia abajo y despus
de hacer eso 3 veces seguidas se pare. Se nos ocurre varias formas de poder hacerlo: una es
definiendo un path, y controlando cuando queremos que se pare definitivamente. Otra
mediante alarmas, programando muy bien los movimientos que hay que hacer. Y la manera
ms sencilla, con un timeline, definiendo en cada momento cuando tiene que cambiar de
direccin y finalmente parar.

193

www.aprendegamemaker.com

Como crear un timeline


Para crearlo, podemos hacerlo como siempre, desde el rbol de recursos o desde el men
Resources Create Time Line. Abrir una ventana como sta:

As se ve la ventana al crear un timeline nuevo

Vemos que se parece mucho a la ventana del editor de objetos, ya que tiene las mismas
pestaas en el lado derecho. Eso significa que podemos hacer las mismas acciones, pero en
vez de asignarlas a eventos concretos, esos que ya conocemos, los asignaremos a momentos
en el tiempo. Esos momentos los definimos con steps, es decir, cuando decimos en tal
momento creamos un objeto, diremos en tal step creamos el objeto.
Pero antes de nada, hay que hacer como cualquier otro recurso: darle un nombre nico. Yo
suelo usar el prefijo tml_. Vemos que donde solemos ver los eventos en un objeto, tiene una
lista de los momentos que hemos aadido. Recordemos que un timeline se ejecutar cuando
hayamos aadido la accin en un objeto, por tanto, el momento 0 del timeline no es cuando
se inicia la room, sino cuando se lo aadimos en un objeto. Ahora vamos a ver los botones
para gestionar esos momentos.

Botones de gestin en el timeline


Los botones estn para aadir, eliminar o modificar los momentos dentro de un timeline.
Estos botones son:


Aadir. Con esta opcin agregamos un momento en la lnea de tiempo. Aparecer una
ventana para indicar el momento, es decir, el nmero de step desde que se inici el
timeline (tal y como hemos comentado antes). Una vez aadido ese momento en la
194

www.aprendegamemaker.com

lista, podremos arrastrar acciones a la lista, igual que si fuera en un evento de un


objeto. Tambin podemos aadir cdigo GML.


Cambiar. Este botn cambia el nmero de steps de un momento seleccionado.

Eliminar. Elimina un momento o una serie de momentos (depende del rango que
pongamos en la ventana que aparece). As, poniendo un momento de inicio y otro de
final, borrar todos los del rango (con sus acciones asociadas).

Limpiar. Borra toda la lista de momentos que hemos aadido.

Mover. Coge un rango de tiempos y los mueve dentro del timeline. Por ejemplo, si
tenemos los momentos 5, 30, 40 y 70, si decimos que el rango entre 30 y 70 los mueva
al 10, al final quedar 5, 10, 20 y 50. Como vemos mantiene la misma separacin de
pasos entre un momento y otro.

Duplicar. Es muy parecido al botn de cambiar, pero har una copia del momento
seleccionado.

Propagar. Del rango de tiempo que queramos, aadir o restar tiempo dependiendo
del porcentaje que le digamos. Por ejemplo, imaginemos que hemos aadido los pasos
5, 8 y 12. Si elegimos en la ventana From moment 5, till moment 12 y un porcentaje de
200, al final los pasos sern 5, 11, 19. Porque esos valores? Hemos dicho que el
porcentaje es de 200, es decir, que duplica los tiempos. Si entre el tiempo 5 y el 8 son 3
pasos, al duplicarlo sern 6. Si entre el tiempo 8 y 12 hay 4 pasos, al duplicarlo sern 8.
De ah que los tiempos sean 5 (al ser el primera se mantiene), 11 y 19.

Unir. Une todas las acciones de un rango de momentos. Por ejemplo, si tenemos los
pasos 10, 30, 70, y 100, con este botn metera todas las acciones programadas en cada
momento en el 10.

Mostrar informacin. Al igual que con el editor de objetos, nos permite tener una
visualizacin de todo lo que se ha aadido en el timeline, en formato HTML para
visualizar rpidamente o imprimir.

Acciones en el timeline
No hay mucho ms que comentar con las acciones en el timeline. Al estar relacionado un
timeline con el objeto, todas las acciones estn relacionadas con ese objeto (movimiento,
gravedad, etc). Tambin podemos aadir cdigo GML, de esta manera podemos ampliar
todo lo posible las posibilidades de aadir complejidad a nuestro objeto.
Y hasta aqu todo lo que se puede hacer con las lneas de tiempo, un recurso muy til para
muchos casos que nos podemos encontrar y que puede ser difcil de programar si usamos
alarmas.
195

www.aprendegamemaker.com

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 bsico de los que ya hemos comentado,
excepto las arrays, ya que stas pueden variar en su tamao.

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 nmero asociado. Por ejemplo, el color negro es el
nmero 0, el color rojo es el nmero 255 y un color personalizado, como un azul, puede ser
el 16711680. Obviamente, no nos vamos a acordar de todos estos nmeros, as que Game
Maker nos proporciona 6 colores bsicos para poder usar, c_white, c_black, c_red Tenis
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.
Tambin existen otras macros que solemos utilizar en nuestros juegos. Son las macros
relacionadas con el teclado. stas empiezan con el prefijo vk_. Cul es el motivo? Ya
comentamos que cada tecla est relacionado con un nmero. Este nmero es el equivalente
en su tabla ASCII. Podemos usar las macros de vk_tab, vk_delete o vk_pausepara las teclas
especiales, aunque tambin tenemos para el teclado numrico. Tenis un listado en la ayuda
online de Game Maker Para las letras, podemos usar la funcin ord(), por ejemplo
ord(A).

Como se definen las macros

196

www.aprendegamemaker.com

Para definir una macro, podemos ir como siempre al men Resources Define Macros. Se
abrir la siguiente ventana:

Aqu definimos las macros en Game Maker

En la parte principal tenemos una lista de todas las macros que hemos definido. Al principio
nos la encontraremos vaca, as que tenemos una serie de botones para gestionarla. Con el
botn Add podemos aadir 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 maysculas. Game Maker
Studio distingue maysculas y minsculas, as que una constante llamada GRID ser
diferente de una variable llamada grid.
El valor que le demos a esta macro puede ser un nmero, un texto o una expresin/funcin.
Las macros se ejecutan al inicio del juego, as que si usamos una funcin que depende del
juego, no ser correcta. Por ejemplo, existe una expresin para saber el nmero de
instancias, instance_count. Si quisiramos asignarla a una macro, su valor no sera nunca
correcto.
Cuando tengamos dos macros aadidas, se activarn varios botones. Podemos aadir una
macro en medio de otras dos con el botn Insert, moverlas con los botones Up y Down y
197

www.aprendegamemaker.com

ordenarlas con el botn Sort. Tambin podemos borrar una macro con el botn Delete y
borrar todas las que hemos creado con Clear.
Tambin tenemos otros dos botones interesantes, para aadir y guardar macros en un
fichero. Si ya tenemos macros definidas de otros proyectos, podemos guardarlas con el
botn Save y recuperarlas con el botn Load. Si ya tenemos macros definidas se aadirn 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 lnea,
donde vemos algo parecido a NAME = VALUE.

Usar expresiones en macros


Ya hemos dicho que las expresiones que podemos usar estn limitadas, pero existen una
serie de funciones que pueden ser tiles. Veamos un par de ejemplos.
Existe una funcin que nos devuelve un nmero aleatorio. Esta funcin se llama
random(). Por lo tanto, random(100) nos devolvera un nmero de 0 a 100.
Imaginemos que queremos usar ese nmero aleatorio para todo el juego, pues podemos
aadir una macro as
MY_RANDOM = random(100)

Podemos usar tambin 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 podamos tener varias configuraciones
de nuestro proyecto. Por ejemplo, una configuracin para nuestro juegoFree y otra
configuracin 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 configuracin,
podemos aadirlas en cada una de ellas, y as sern independientes.

198

www.aprendegamemaker.com

Scripts
Hemos hablado de los principales recursos que podemos utilizar en nuestros juegos:
imgenes que utilizamos para los fondos o los objetos que programamos, sonidos,
habitaciones dnde colocar los objetos Ahora ya tocara empezar a usar cdigo GML, ya
que hemos visto cmo creamos eventos y acciones.
Pero antes de mirar el lenguaje propio de Game Maker Studio, debemos de pararnos un
momento para ver que son los scripts. Game Maker tiene un montn de funciones que
podemos utilizar, pero es posible que en algn momento necesitemos crear nuestras propias
funciones, para utilizarlos en diferentes sitios como en objetos, rooms, etc. Estas funciones,
que las usamos para hacer cosas especficas, las aadimos en el rbol de recursos, en la
carpeta de scripts.

Qu es un script?
Un script es un trozo de programa, utilizando el lenguaje GML para escribirlo (lo iremos
aprendiendo poco a poco, viendo como se utiliza y poniendo ejemplos). Aunque ahora no
entraremos en detalle para explicar qu son los scripts.
Un script es posible que acepte valores de entrada, que se almacenan en variables, as que
puede ser un nmero, un texto, sprites, etc. Estos valores se llaman argumentos o
parmetros. Por ejemplo, si creamos el scriptdibujar_barra_energia, unos posibles
argumentos puede ser la posicin, X/Y.
Para llamar a un script, tenemos una accin especfica llamada Execute Script, y tambin
desde el cdigo GML escribiendo tal cual la funcin con parntesis. Si tienes argumentos, lo
pondremos

dentro

de

esos

parntesis

separados

por

coma.

Por

ejemplo

dibujar_barra_energia(x, y).
Al igual que un script puede recibir parmetros de entrada, un script puede devolver un
valor. Por ejemplo, imaginemos que tenemos varios objetos que luchan entre ellos, cada
uno con su fuerza y resistencia. Crearemos una variable de fuerza y otra de resistencia, que
variar dependiendo de cada objeto. Cuando choquen dos objetos, veremos quien gana
dependiendo de los valores de cada uno. Podemos crear un script que compruebe quin
gana y que devuelva el resultado.

199

www.aprendegamemaker.com

Guardar y cargar scripts


Es posible guardar y cargar scripts, tal y como comentamos con las macros. Se guardan en
ficheros de texto con extensin TXT, as podemos guardar funciones tiles para poder usar
en mltiples proyectos.
Para cargar un script, con el botn derecho en la carpeta scripts del rbol de recursos,
aparecer un men y le daremos a Add Existing Script. Podemos elegir ficheros con formato
GMX o TXT para aadirlo.
Para guardar un script, se hace de la misma manera, seleccionando Export Selected Script.

Crear un script
Para crear un script nuevo, como siempre, desde el men Resources Create Script. Nos
aparecer una ventana similar a sta:

Aqu empezaramos a escribir nuestro cdigo

Si nos fijamos, esta ventana es exactamente la misma que si usamos la accin Execute code.
Por qu? Porque tienen la misma funcionalidad, la nica diferencia es que cuando es un
script aparece un campo de name, mientras que con Execute code

nos referimos a

una accin de un evento y no hace falta ponerle un nombre.

200

www.aprendegamemaker.com

Damos al script un nombre nico para todo el proyecto, algo que sea fcil de recordar.
Podemos usar las primeras lneas para describir qu hace exactamente y si tiene argumentos
o no, y una breve descripcin de cada uno de ellos.
La ventana se divide en tres partes: la barra de herramientas con botones para facilitar
algunas acciones, la parte principal donde escribimos el cdigo y la barra de informacin,
que nos detalla en qu lnea y columna estamos, algunas teclas especiales activadas que nos
sirve a la hora de escribir, como la tecla <INS>, el tamao de la fuente y por ltimo
informacin adicional si estamos escribiendo una funcin en concreto. Ahora veremos un
poco los botones de la barra de herramientas, para ver que acciones podemos hacer.

Barra de herramientas del editor de scripts


En la barra de herramientas nos encontramos con los botones siguientes:


Confirmar: cerrar el editor actual, sin preguntar, y guarda los cambios que hemos
hecho.

Cargar un script: abre una ventana para elegir un fichero de texto que hemos guardado
anteriormente. Reemplazar el cdigo que hayamos escrito en la ventana.

Guardar script: guarda el script que estamos viendo en un fichero de texto.

Imprimir: abrir una ventana estndar para seleccionar la impresora y sus propiedades
e imprimir el cdigo actual.

Deshacer: deshace la ltima accin, con un nmero limitado de 16 acciones.

Rehacer: si hemos utilizado el botn anterior, podemos rehacer las acciones con el
mismo lmite que hemos comentado.

Cortar: corta el texto seleccionado y lo almacena en el portapapeles.Luego lo podremos


pegar en otro script, recurso o programa externo.

Copiar: Lo mismo que el anterior, pero en vez de cortar lo copia.

Pegar: Pega texto almacenado en el portapapeles.

Buscar y reemplazar: se abrir un panel lateral para buscar y/o reemplazar texto en el
cdigo. Luego explicaremos como funciona en detalle.

Revisar sintaxis: Este botn puede activar o desactivar el corrector de sintaxis. Si est
activado, nos resaltar en rojo, configurado por defecto, y aparece un mensaje en la
parte inferior del cdigo explicando cul es el problema. Eso no significa que nuestro
juego no pueda producir errores, pero es la primera fase parap oder corregirlos.

201

www.aprendegamemaker.com

Autocompletar: si est activado, conforme vamos escribiendo nos aparecer una


ventana y nos mostrar unas sugerencias de lo que se ha escrito. Por ejemplo, si
escribimos room_

Vemos todas las opciones disponibles para el texto escrito

veremos una lista de funciones y variables para elegir cual es la que corresponde.

Atajos de teclado
Aunque no lo explican en ningn lado, podemos conocer algunas combinaciones de tecla
que nos puede facilitar escribir cdigo. Muchas son estndar, como cortar con <Ctrl> + <X> o
buscar con <Ctrl> + <F>, pero algunas son propias del editor. Vamos a verlas:


Con la tecla <F2>, nos aparecer una ventana para escribir algunos mtodos y
fragmentos ms utilizados. Estas opciones son las que vemos en la siguiente imagen

Pulsando <F7> y <F8> podemos cambiar el tamao de la fuente (recuerda que en la


barra de abajo de la ventana vemos el tamao como referencia).

Con la tecla <F10> podemos activar o desactivar la combinacin de colores del editor.

202

www.aprendegamemaker.com

Sabemos que con la tecla <F1> nos abrir la ventan de ayuda del programa, pero con la
tecla <F12> nos abrir la ayuda exacta del mtodo en que est posicionado el cursor (si
existe ese mtodo).

La ventana de autocompletar aparece automticamente cuando hacemos una pequea


pausa al escribir. La podemos forzar con la combinacin <Ctrl> + <Espacio>.

Pestaas de scripts
Es posible que si nuestro juego es muy grande tengamos muchos scripts, y aunque lo
organicemos en el rbol de recursos con subcarpetas, puede ser algo catico gestionar y
buscar alguno. Por eso han creado la posibilidad de crear pestaas dentro de un script, como
si fuesen fichas. Veamos cmo funciona.
Imaginemos que tenemos un objeto obj_player, que tiene un script de movimiento, otro que
comprueba colisiones y otro para dibujar (con varios mtodos draw). Esto claro que tenemos
tres o ms scripts relacionados con el mismo objeto o temtica, as que lo habitual es
ponerlo dentro de una subcarpeta. Pero tambin podemos hacer una cosa, teniendo un
script de base o de partida, aadir el resto de scripts como si fueran pestaas. Los scripts
funcionarn de la misma manera, la nica diferencia es que no lo vemos en el rbol de
recursos sino que estn todos encapsulados en el nico script de base que si podemos ver.
Para crear un nuevo script hijo, hacemos click en la pestaa vaca que siempre encontramos
en la derecha de la pestaa actual, y a partir de ese momento funcionar igual que si fuera
otro script (aadirle un nombre nico, cdigo GML, etc).

Cdigo de colores
Cuando empecemos a escribir cdigo, veremos que los colores cambian dependiendo de si
son objetos que existen, variables del sistema, funciones, etc. Estos colores sirven para
ayudar en la escritura y evitar muchos errores. Si queremos cambiar el cdigo para mostrar
colores diferentes, podemos cambiarlo en las Preferencias del sistema.Tambin podemos
apagar los colores con la tecla <F10> tal y como hemos comentado.

Buscar y reemplazar texto


Cuando hemos hablado de la barra de herramientas dijimos que hay un botn para buscar y
reemplazar texto. Vamos a ver ahora en detalle el panel que aparece.

203

www.aprendegamemaker.com

Vemos que en el panel lateral podemos escribir arriba la cadena a buscar. Al hacerlo, en el
cdigo vemos esa cadena subrayadas con un color amarillo. Tambin vemos las opciones de
case sensitive, para tener en cuenta las maysculas y minsculas, importante para el nombre
de variables y funciones, y Whole word only, para buscar palabras completas.
Tenemos unos botones de navegacin para ir a la parte del cdigo que estamos buscando,
son los botones de previous, next, first y last.
Si queremos reemplazar texto, tenemos la seccin inferior del panel. Respecto el texto
buscado, podemos poner el texto que queremos reemplazar. Tambin tenemos los mismos
botones de navegacin, para poder reemplazar el texto conforme va encontrando el texto
buscado. Tenemos un botn ms llamado Replace All para reemplazar todo el texto que ha
encontrado sin necesidad de navegar, adems de la casilla Replace in all tabs para hacerlo en
todos los scripts que tenemos como pestaas.

204

www.aprendegamemaker.com

Agradecimientos
Primero, quiero agradecer a la persona que inicialmente recopil todo el material en un
documento, y me facilit la posterior edicin que tienes en tus manos. Si te llega este
documento en tus manos, espero arrancar alguna sonrisa ^_^.
Segundo, a todos los lectores del blog, que son los que hacen que este proyecto siga
adelante. Espero que os pueda servir de ayuda para realizar todos vuestros juegos y, como
siempre digo, podis enviarme vuestras dudas, correcciones y sugerencias a travs de los
comentarios o el contacto del blog.
Y finalmente, a mi familia, por la paciencia que tienen y ofrecerme esos ratitos de tiempo
para que todo siga sobre rueas.

Nota final
Recuerda que esto es una gua no oficial de GameMaker: Studio. YoYo Games y GameMaker:
Studio son marcas registradas con todos sus derechos reservados.

205

Vous aimerez peut-être aussi