Acciones de movimiento

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
.