Académique Documents
Professionnel Documents
Culture Documents
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
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.
www.aprendegamemaker.com
Juegos multijugador,
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.
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
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.
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
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.
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.
18
www.aprendegamemaker.com
www.aprendegamemaker.com
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
21
www.aprendegamemaker.com
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
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
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.
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
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.
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.
Fonts o fuentes: si queremos dibujar texto en el juego podemos definir varios tipos de
letra.
27
www.aprendegamemaker.com
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
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.
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.
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
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.
MacOSX
Windows 8 (JavaScript).
Windows 8 (Nativo).
HTML5.
Ubuntu (Linux).
iOS.
Android.
Tizen.
Windows Phone.
31
www.aprendegamemaker.com
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.
Proyectos recientes: aparecer un men secundario con una lista de los proyectos
que ha abierto o modificado recientemente.
www.aprendegamemaker.com
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.
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.
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.
33
www.aprendegamemaker.com
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.
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.
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
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 constantes: lo mismo que estamos viendo, pero es una lista de constantes
del sistema.
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.
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.
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.
Base
de
datos
de
conocimiento:
abrir
la
direccin
Notas de la versin: abre una pestaa de tu navegador para mostrar las notas de la
versin actual.
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
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
38
www.aprendegamemaker.com
Mostrar ltimos juegos editados en el men Archivo: si se marca aparecen los ltimos 8
juegos editados.
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 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.
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 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
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.
40
www.aprendegamemaker.com
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
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.
General
Abrir formularios maximizados por defecto: siempre abrira todas las ventanas con el
tamao mximo.
42
www.aprendegamemaker.com
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.
Permitir cursos ms all del final de lnea: permite colocar el cursor en cualquier
posicin de la pantalla del editor.
www.aprendegamemaker.com
Mostrar textos buscados: si buscamos un texto, te resalta las coincidencias del texto
buscado.
Mostrar fragmentos de cdigo con F2: si pulsamos F2 veremos cdigo que podemos
insertar con el formato ya establecido.
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.
44
www.aprendegamemaker.com
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 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.
45
www.aprendegamemaker.com
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:
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
47
www.aprendegamemaker.com
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.
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:
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
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:
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.
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
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.
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
www.aprendegamemaker.com
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.
www.aprendegamemaker.com
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.
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.
Confirmar: cierra el editor de sprites y guarda los cambios que hemos hecho.
introduzcamos un alto y ancho base. Al ser un sprite nuevo, borrar los datos que
tengamos ya en el 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:
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
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:
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.
www.aprendegamemaker.com
A continuacin explicaremos las opciones de men que nos permitir crear y editar de
muchas formas nuestros sprites.
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
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.
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.
61
www.aprendegamemaker.com
Insertar vaco: lo mismo que la anterior, pero en vez de aadirla al final lo aade antes
de la subimagen seleccionada.
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
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.
Crop:
es
una
herramienta
que
sirve
para
recortar/ampliar
las
imgenes
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.
Colorear: puedes cambiar la tonalidad de la/s imagen/es. Hay una barra deslizante, o un
cuadro de texto, para darle un valor exacto.
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.
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
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.
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:
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.
Inverso: invierte el orden de los sprites para que la animacin se haga hacia atrs.
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.
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).
Aumentar: lo mismo que el efecto anterior, pero al contrario. Tambin tiene direccin
hacia el centro, izquierda, derecha, arriba o abajo.
66
www.aprendegamemaker.com
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.
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.
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.
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
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.
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 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.
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.
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.
71
www.aprendegamemaker.com
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.
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.
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
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.
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.
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
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.
80
www.aprendegamemaker.com
81
www.aprendegamemaker.com
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.
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.
83
www.aprendegamemaker.com
profundidad y se ver por debajo de otras instancias. Vemos un ejemplo sacado de la ayuda
on line:
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.
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.
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.
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
87
www.aprendegamemaker.com
88
www.aprendegamemaker.com
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
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
91
www.aprendegamemaker.com
De esta manera, sobrescribimos el evento para que haga algo totalmente distinto (o en este
caso parecido).
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
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
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.
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!
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.
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 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.
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.
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.
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:
Eventos de Steam
105
www.aprendegamemaker.com
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.
Evento Game Start. Este evento solo ocurre en la primer room del juego.
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 Step: este evento se ejecuta justo antes que las instancias se muevan a su
nueva posicin.
www.aprendegamemaker.com
Como hemos visto, tambin tenemos varios eventos para dibujar, siguiendo este orden:
Evento Draw.
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.
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.
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
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.
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.
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
115
www.aprendegamemaker.com
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
117
www.aprendegamemaker.com
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
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.
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.
Muy til para crear enemigos aleatorios o, por ejemplo, piezas del Tetris.
125
www.aprendegamemaker.com
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
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
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.
131
www.aprendegamemaker.com
www.aprendegamemaker.com
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
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
Iniciar Timeline o Start Time Line. Iniciar el timeline desde su posicin actual (al
estar pausado o detenido).
135
www.aprendegamemaker.com
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
139
www.aprendegamemaker.com
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.
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.
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
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
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.
146
www.aprendegamemaker.com
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:
148
www.aprendegamemaker.com
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
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
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.
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.
www.aprendegamemaker.com
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.
154
www.aprendegamemaker.com
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
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.
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
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.
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.
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.
164
www.aprendegamemaker.com
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 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
171
www.aprendegamemaker.com
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.
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.
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.
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
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
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
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.
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.
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
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.
Ajustes
En la pesaa de Ajustes vemos la configuracin bsica de la room. Las opciones que
podemos cambiar son:
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
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.
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,
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.
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.
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
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:
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.
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
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:
Esta ventana tiene unos botones para ayudarnos a elegir los caracteres:
el rango normal con las opciones ms estndar, letras, nmeros y caracteres como ! ?.
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
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
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.
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.
Acciones de puntos: Estos botones cambian todos los puntos del path, con acciones
especficas. Estas acciones son:
Invertir camino. Vemos que el punto de origen va cambiando de todos los que
hemos aadido.
Rotar. Definimos un ngulo y cambia todos los puntos respecto el centro del path.
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.
www.aprendegamemaker.com
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.
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
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
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.
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
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).
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
196
www.aprendegamemaker.com
Para definir una macro, podemos ir como siempre al men Resources Define Macros. Se
abrir la siguiente ventana:
En la parte principal tenemos una lista de todas las macros que hemos definido. Al principio
nos la encontraremos 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.
En este caso, estamos sumando dos constantes para formar una frase.
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
Crear un script
Para crear un script nuevo, como siempre, desde el men Resources Create Script. Nos
aparecer una ventana similar a sta:
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
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.
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.
Imprimir: abrir una ventana estndar para seleccionar la impresora y sus propiedades
e imprimir el cdigo actual.
Rehacer: si hemos utilizado el botn anterior, podemos rehacer las acciones con el
mismo lmite que hemos comentado.
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
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
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).
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.
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