Hay varias acciones con las que puedes controlar qué otras acciones se llevan a cabo. La mayoría de estas acciones hacen una pregunta, por ejemplo si es que una posición está vacía. Cuando la respuesta es yes (true) se ejecuta la siguiente acción, de otra forma se salta esa acción. Si quieres que se ejecuten o salten varias acciones basándote en el
resultado puedes colocarlas dentro de un bloque. También puede haber una parte else, la cual se ejecuta cuando la respuesta es no. Así, una pregunta normalmente tiene la siguiente estructura:

Aquí se pregunta si una posición para la instancia actual está libre de colisión. De ser así, la instancia comienza a moverse en una dirección dada. Si no, la instancia es movida a una posición dada.
Para todas las preguntas hay un campo marcado NOT. Si lo marcas, el resultado de la pregunta se invierte. Esto es, si el resultado era verdadero se vuelve falso, y si era falso, se vuelve verdadero. Esto te permite realizar ciertas acciones cuando una pregunta no es verdadera.
Para muchas preguntas puedes indicar si deben aplicar a todas las instancias de un objeto en particular. En este caso el resultado es verdadero solo si es verdadero para todas las instancias del objeto. Por ejemplo, puedes checar si para todas las pelotas la posición ligeramente a la derecha está libre de colisión.
Las siguientes preguntas y acciones relacionadas están disponibles. (Nota que todas ellas tienen un icono con forma y color de fondo diferentes de manera que puedan ser distinguidos más fácilmente de otras acciones).
If
a position is collision free
Esta pregunta devuelve verdadero si la instancia actual, colocada en la posición
indicada no provoca una collision con algún objeto. Puedes especificar si la
posición es absoluta o relativa. Puedes también indicar si solo los objetos
sólidos o todos los objetos debieran ser tomados en cuenta.
Esta acción es
normalmente empleada para checar si la instancia
se puede mover a una posición en particular.
If
there is a collision at a position
Esta es la inversa de la acción anterior.
Devuelve verdadero si hay
una colisión cuando la instancia actual es colocada en la posición indicada (de
nuevo, ya sea sólo con objetos sólidos o con toda clase de objetos).
If
there is an object at a position
Esta pregunta devuelve verdadero si la instancia colocada en la posición
indicada encuentra una instancia del objeto indicado.
If
the number of instances is a value
Especificas un objeto y un número.
Si el número de instancias
del objeto es igual al número la pregunta devuelve verdadero.
De otra forma
devuelve falso.
Puedes también indicar que la revisión debiera ser si el número de instancias es
menor o mayor que el valor. Esto se usa normalmente para checar si todas las
instancias de un tipo en particular han desaparecido.
Este es
normalmente el momento de terminar el nivel o el juego.
With
a change perform next action
Especificas el número de lados del dado.
Entonces si el dado cae en
uno, el resultado es verdadero y se realiza la acción. Esto se puede emplear
para agregar cierta aleatoriedad en tu juego. Por ejemplo, en cada paso puedes
generar con cierta probabilidad una bomba o un cambio de dirección. Entre mayor
sea el número de lados del dado, la probabilidad es menor.
Puedes emplear
números reales. Por
ejemplo, si configuras el número de lados a 1.5 la siguiente acción se realizará
dos de tres veces.
El emplear un
número menor que 1 no tiene sentido.
If
the user answers yes to a question
Especificas una pregunta.
Se muestra una ventana de
diálogo al usuario con dos botones: Yes y No.
El resultado
es verdadero si el jugador contesta Yes.
If
an expression is true
Puedes introducir una expresión.
Si la expresión se evalúa
como verdadera (esto es, un número mayor o igual a 0.5) se realizará la
siguiente acción.
Ve más abajo
para más información sobre las expresiones.
If
a mouse button is pressed
Devuelve verdadero si el botón indicado del ratón es presionado.
Un uso estándar está en el
evento paso. Puedes checar si un botón del ratón está presionado, y si es así,
por ejemplo moverte a esa posición (usa la acción jump to a point con los
valores
mouse_x
y
mouse_y).
If
instance is aligned with grid
Devuelve verdadero si la posición de la instancia se encuentra sobre una
cuadrícula. Especificas el espaciado horizontal y vertical de la cuadrícula.
Esto es muy útil cuando ciertas acciones, como el dar una vuelta, no son
permitidas cuando se está alineado a una posición en la cuadrícula.
Start
of block
Indica el inicio de un bloque de acciones.
End
of block
Indica el final de un bloque de acciones.
Else
Detrás de esta acción sigue el else, que se ejecuta cuando el resultado de la
pregunta es falso.
Repeat
next action
Esta acción se emplea para repetir la siguiente acción (o bloque de acciones)
cierto número de veces.
Puedes
simplemente indicar el número.
Exit
the current event
Cuando se encuentra esta acción, no se realiza ninguna otra en el evento.
Normalmente se emplea
después de una pregunta. Por ejemplo, cuando una posición está libre no se
necesita hacer nada por lo que salimos del evento. En este ejemplo, las acciones
siguientes son solo ejecutadas cuando hay una colisión.
Si deseas más control sobre lo que está ocurriendo en el juego puedes uar el lenguaje de programación de Game Maker, el GML, que se explica en la segunda parte del manual. Te da mucha más flexibilidad que usando las acciones, gracia a que puedes usar tus propias variables. Las acciones siguientes se ocupan de esto:
Execute
a piece of code
Cuando agregas esta acción, se muestra una ventana en la que puedes introducir
una pieza de código.
Éste funciona
en la misma forma que definir scripts.
La única diferencia es que
puedes indicar para qué instancias se debe ejecutar el código.
Usa esta
acción para pequeñas piezas de código. Para piezas más largas se te recomienda
usar
scripts.
Comment
Usa esta acción para agregar una línea de comentarios a la lista de acciones.
La
línea se muestra en fuente cursiva. No hace nada cuando se ejecuta el evento.
El agregar
comentarios te ayuda a recordar lo que estás haciendo en tus eventos.
Set
the value of a variable
Hay muchas variables internas en el juego.
Con esta acción puedes
cambiar sus valores. También puedes crear tus propias variables y asignarles
valores. Indicas el nombre de la variable y un nuevo valor. Cuando seleccionas
la opción Relative, el valor se suma al valor actual de la variable. ¡Por
favor nota que esto sólo puede usarse si la variable ya tiene un valor
asignado!.
Ve más
adelante para más información sobre las variables.
If
a variable has a value
Con esta acción puedes checar cuál es el valor cierta variable.
Si el valor de la variable
es igual al número introducido, la pregunta devuelve true.
En cualquier
otro caso devuelve false. Puedes indicar si se checará si la el valor es
menor o mayor que el dado. Ve abajo para más información sobre las variables. De
hecho, también puedes usar esta acción para
comparar dos expresiones.
Draw
the value of a variable
Con esta acción puedes dibujar el valor de una variable en cierta posición de la
pantalla. Esta acción sólo se puede usar en el evento Draw.