El primer grupo de acciones consiste de aquellas relacionadas al movimiento de objetos. Tenemos las siguientes:
Start
moving in a direction
Usa esta acción para que la instancia empiece a moverse en una dirección en
particular. Puedes indicar la dirección usando las flechas. Usa el botón del
medio para detener el movimiento. También debes especificar la velocidad de
movimiento. Esta velocidad está dada en pixels por paso. El valor por defecto es
de 8. De preferencia no uses valores de velocidad negativos. Puedes especificar
múltiples direcciones. En este caso se elige una al azar. De esta forma puedes
por ejemplo hacer que un enemigo se mueva hacia la izquierda o hacia la derecha.
Set
direction and speed of motion
Esta es la segunda forma en la que puedes especificar un movimiento (con las
flechas azules). Aquí puedes indicar una dirección con más precisión. Con un
ángulo de entre 0 y 360 grados. 0 significa hacia la derecha. La dirección es
contra las manecillas del reloj. Así por ejemplo 90 indica la dirección hacia
arriba. Si quieres una dirección arbitraria, puedes poner random(360). Como
verás más abajo la función random da un número al azar menor que el valor
indicado. Como podrás haber notado hay una casilla llamada Relative. Si
la seleccionas, el nuevo movimiento es sumado al anterior. Por ejemplo, si la
instancia se está moviendo hacia arriba y le agregas un pequeño movimiento hacia
la izquierda, el nuevo movimiento será hacia arriba y a la izquierda.
Move
towards a point
Esta acción da otra manera de especificar un movimiento. Usted indica una
posición y una velocidad y la instancia comienza a moverse con la velocidad
seleccionada hacia la posición establecida (la instancia no se detendrá en la
posición!). Por ejemplo, tu quieres que una bala vuele hacia la posición de una
nave espacial (llamada spaceship), puedes usar como posición spaceship.x,
spaceship.y (Aprenderá más sobre el uso de variables como éstas más adelante).
Si
marcas la casilla Relative, puede especificar la posición relativa para
la posición actual de la instancia. (La velocidad no es tomada como relativa!)
Set
the horizontal speed
La velocidad de una instancia consiste de una parte horizontal y otra vertical.
Con
esta acción puedes cambiar la velocidad horizontal. Una velocidad horizontal
positiva representa movimiento hacia la derecha. Una negativa movimiento hacia
la izquierda. La velocidad vertical permanecerá constante. Usa la opción
Relative para incrementar la velocidad horizontal (o disminuirla
introduciendo un valor negativo).
Set
the vertical speed
De manera similar, con esta acción puedes cambiar la velocidad vertical de la
instancia.
Set
the gravity
Con esta acción puedes especificar una gravedad para un objeto en particular.
Especificas una dirección (un ángulo entre 0 y 360 grados) y una velocidad, y a
cada paso esta cantidad de velocidad en la dirección especificada se aumenta al
movimiento actual de la instancia del objeto. Normalmente necesitas un muy
pequeño incremento de velocidad (como 0.01). Normalmente se emplea una dirección
hacia abajo (270 grados). Si seleccionas la casilla Relative incrementas
la velocidad de gravedad y la dirección. Nota que, contrario a la vida real,
diferentes objetos pueden tener diferentes direcciones de gravedad.
Reverse
horizontal direction
Con esta acción inviertes el movimiento horizontal de la instancia. Esto lo
puedes usar por ejemplo cuando el objeto colisiona con una pared vertical.
Reverse
vertical direction
Con esta acción inviertes el movimiento vertical de la instancia. Esto lo puedes
usar por ejemplo cuando el objeto colisiona con una pared horizontal.
Set
the friction
La fricción disminuye la velocidad de las instancias cuando se mueven. Puedes
especificar la cantidad de fricción. En cada paso esta cantidad se resta de la
velocidad hasta llegar a 0. Normalmente usas un número muy pequeño (como 0.01).
Jump
to a given position
Usando esta acción puedes colocar una instancia en una posición en particular.
Simplemente especificas las coordenadas ‘x’ e ‘y’, y la instancia es colocada
con su punto de referencia en esa posición. Si la casilla Relative está
marcada, la posición es relativa a la posición actual de la instancia. Esta
acción es usada a menudo para continuamente mover la instancia. En cada pasa
incrementaremos la posición un poco.
Jump
to the start position
Esta acción coloca la instancia de vuelta a la posición donde fue creada.
Jump
to a random position
Esta acción mueve la instancia a una posición aleatoria cuarto. Solo se usan
posiciones en donde la instancia no intercepte ninguna instancia sólida. Puedes
especificar la rapidez (snap) usada. Si especificas valores positivos,
las coordenadas serán elegidas con múltiplos enteros de los valores indicados.
Esto puede ser usado por ejemplo para mantener una instancia alineada con las
celdas de tu juego (si la hay). Puedes especificar la rapidez horizontal y la
vertical por separado.
Snap
to grid
Con esta acción puedes alinear la posición de una instancia a una cuadrícula.
Puedes indicar los valores horizontal y vertical (esto es, el tamaño de las
celdas de la cuadrícula). Esto puede ser muy útil para asegurarte que las
instancias se mantengan en una cuadrícula.
Wrap
when moving outside
Con esta acción puedes hacer que cuando una instancia salga del room por un
lado, aparezca por el lado contrario (teleportación). Normalmente esta acción se
usa en el evento Outside room. Observa que la instancia debe tener una
velocidad para que esta acción funcione, porque la dirección en la que reaperece
se basa en la dirección de movimiento. Puedes indicar si quieres que la
instancia se teleporte sólo horizontalmente, sólo verticalmente o en ambas
direcciones a la vez.
Move
to contact position
Con esta acción puedes mover la instancia en una dirección dada hasta que se
encuentre tocando a otro objeto. Si ya hay colisión en la posición actual la
instancia no se mueve. En caso contrario, la instancia se coloca justo antes de
que ocurra una colisión. Puedes especificar la dirección y la máxima distancia
que se debe mover la instancia. Por ejemplo, cuando la instancia se está cayendo
puedes moverla una distancia máxima hasta que encuentre un objeto. También
puedes hacer que se tengan en cuenta sólo los objetos sólidos o todos.
Normalmente esta acción se pone en el evento colisión para asegurarte de que la
instancia deje de moverse al chocar con el otro objeto.
Bounce
against objects
Cuando colocas esta acción en el evento collision de algún objeto, la instancia
rebota en este objeto de manera natural. Si configuras el parámetro precise
como falso, sólo las paredes horizontales y verticales se tratan correctamente.
Cuando configuras precise a verdadero también se tratan las paredes
inclinadas (y aún las curvadas) de manera correcta. Sin embargo esto es más
lento. También puedes indicar si el objeto rebotará solo contra objetos sólidos
o contra todos los objetos. Por favor nota que el rebote no es completamente
correcto porque depende de muchas propiedades. Pero en muchas situaciones el
efecto es lo suficientemente bueno.