Академический Документы
Профессиональный Документы
Культура Документы
ATRIBUTOS COMUNES
Muchas, no todas las acciones del drag and drop tienen cuatros atributos específicos que son:
Applies To: Nos permite asignar la ejecución de un código a un objeto o instancia especifica.
o Self: Es la primera opción, la cual está por defecto y no necesita código para correr o ejecutarse.
o Other: Se usa para eventos de colisiones y ejecución de códigos de múltiples instancias paralelas del otro objeto; la variable
other asigna una única ID a la otra instancia colisionante, si no es usada en la colisión devuelve “ninguno” (noone) objeto.
Ejemplo: Applies to Other:
with (other)
{ //GML code goes here }
o Object:
Aplica a cada instancia de un objeto tipo existente. Si seleccionas un objeto padre también todos los hijos serán
afectados.
Ejemplo: Applies to Object:
with (object name)
{ //GML code goes here }
Is Relative
Nos permite aplicar un nuevo valor a partir de un valor existente sobrescribiendo el nuevo valor.
Ejemplo:
Cuando queremos que la puntuación sea relativa a la puntuación anterior, la variable puede ser denota usando += cuando se establece el valor.
Relative variable
score += 10;
Relative function
instance_create(x+8, y+8, object_0)
Si no se le especifica que es IsRelative solo establecerá el valor de la variable como sigue:
score = 10;
NOT
Es usada para preguntas que requieren respuestas negativas, por ejemplo, si la puntuación no es igual a 100 se debe marcar la casilla. En
código
0. esto se denota con negación (símbolo de exclamación).
Ejemplo:
NOT variable
if (score!= 100)
NOT function
if (!place_free(x, y) //Place_free también trabaja con solidos, por tanto comprueba la existencia de una collision con un objeto
solido.
CONSTRUCCIONES WITH
Como se indicó antes, es posible leer y cambiar el valor de las variables en otras instancias. Pero en ciertos casos
querrás hacer mucho más con esas otras instancias. Por ejemplo, imagina que deseas mover todas las pelotas 8 píxeles
hacia abajo. Pudieras pensar que eso se logra con el siguiente código
pelota.y = pelota.y + 8;
Pero no es correcto. El valor a la derecha de la asignación obtiene la coordenada y de la primera pelota y le suma 8.
Entonces este nuevo valor se toma como la coordenada y para todas las pelotas. Por lo que el resultado es que todas
las pelotas tienen la misma coordenada y.
La sentencia pelota.y += 8;
tendrá exactamente el mismo efecto porque es simplemente una abreviatura de la primera declaración. Entonces,
¿cómo logramos esto? Para ello existe la declaración with.
<declaración> se ejecuta para cada una de las instancias indicadas, como si la instancia fuera la instancia (self) actual.
Así, para mover todas las pelotas 8 píxeles hacia abajo, puedes escribir with (pelota) y += 8;
Si deseas ejecutar múltiples declaraciones, colócalas entre corchetes. Por ejemplo, para mover todas las pelotas a una
posición aleatoria, puedes usar
with (pelota)
{
x = random(room_width);
y = random(room_height);
}
Nota que, dentro de las sentencias, la instancia indicada se ha vuelto la instancia self. Entonces, la instancia self
original ahora es la instancia other.
Así, por ejemplo, para mover todas las pelotas a la posición de la instancia actual, puedes usar
with (pelota)
{
x = other.x;
y = other.y;
}
El uso de la declaración with es muy poderoso. A continuación, te muestro unos cuantos ejemplos más. Para destruir todas las pelotas usas:
with (pelota)
instance_destroy();
Si una bomba explota y tu quieres destruir todas las instancias cercanas a ella puedes usar
with (all)
{
if (distance_to_object(other) < 50) instance_destroy();
}
Si una bomba explota y tu quieres destruir todas las instancias de un tipo de objeto especifico cercanas a ella puedes usar
with (enemy)
{
if (distance_to_object(all) <16) instance_destroy();
}
El ejemplo anterior solo destruye todos los objetos de nombre enemigo en un rango de 16 pixeles.
ACCIONES COMUNES
{
Get_variable =
global.Set_variable;
}
show_debug_message("El valor
de la variable global es
"+string(Get_variable));
DRAG AND DROP SINTAXIS Opciones/Parámetros CÓDIGO EQUIVALENTE GML
Icono Variable: Nombre de la variable que se var expresion = (variable == 100);
está evaluando. if (expresion)
Not: Es el Operador de comparación {
Nombre del Icono negación el cual convierte un valor //Bloque de código a ejecutar
Si Variable? booleano a su valor contrario. }
Is: Es el tipo de expresion utilizada para
evaluar la variable, esto son: Sería igual sin usar expresion:
Equals to – Igual que.
Less than – Menor que. if (variable == 100)
Greater than – Mayor que. {
Less than or Equal to – Menor o igual que //Bloque de código a ejecutar
Greater than or Equal to – Mayor o igual
}
que.
Si utilizamos la propiedad NOT
(negación) sería como sigue:
show_debug_message ("La
variable es igual");
}
}
Opciones/Parámetro
DRAG AND DROP SINTAXIS CÓDIGO EQUIVALENTE GML
s
Icono var if_expresion =
(variable=variable1);
if (if_expresion)
Nombre del Icono {
Si Expresion? }
Descripción: Evalúa (chequea) si una expresion cumple o satisface la condición dada.
EJEMPLO
var Mouse_expresion;
Mouse_expresion =
mouse_check_button(mb_left)
;
if (Mouse_expresion)
{
{
variable = 100;
}
{
variable1 = 100;
}
var if_expresion =
(variable=variable1);
if (if_expresion)
{
show_debug_message(
"Una variable es mayor a la
otra" );
}
}
CÓDIGO
DRAG AND DROP SINTAXIS Opciones/Parámetros
EQUIVALENTE GML
Icono
Descripción: Evalúa (chequea) si una variable o expresion retorna un valor indefinido, retornara verdadero (true) si el valor es idefinido y
falso si no.
EJEMPLO
Nota: The above action block code checks a DS list to see if the initial value is "undefined" or not, and if it is then the list is destroyed.
DRAG AND DROP SINTAXIS Opciones/Parámetros CÓDIGO EQUIVALENTE GML
Icono
Nombre del
Icono
Apply To
Descripción: Puede ser usada para cambiar el alcance de una acción para todas las acciones si una es cambiada.
EJEMPLO
{
change = 100;
}
var l6243C71E_0 = (change == 100);
if (l6243C71E_0)
{
with(self)
{
{
image_blend = $FFFF0008 & $ffffff;
}
}
}
La clausura Self y Nombre del objeto se refieren a la misma instancia. Por tanto en este ejemplo cambiara el color de todas las instancia de
este objeto mesclando el color azul.
CÓDIGO
DRAG AND DROP SINTAXIS Opciones/Parámetros EQUIVALENTE
GML
Icono Return: Es el valor No Aplica
retornado
var if_mouse_expresion;
if_mouse_expresion = mouse_check_button(mb_left);
if (if_mouse_expresion)
{
show_debug_message(c_light_blue);
}
DRAG AND DROP SINTAXIS Opciones/Parámetros CÓDIGO EQUIVALENTE GML
Icono No Aplica
exit;
Descripción: Esta acción toma una de dos valores dependiendo del contexto en que se llame; sale del evento actual y continua al siguiente
evento.
EJEMPLO
{
time = 99;
}
var if_expresion = (time == 100);
if (f_expresion)
{
show_debug_message("La variable es igual a 100, saldremos
del evento");
exit;
}
APLICACION DE LOS CONOCIMIENTOS
Draw_self()
x=mouse_x
y=mouse_y
draw_circle(x,y,48,true)
inst_id=collision_circle(x, y, 16, obj_enemy, false, true)
if(inst_id)
{
with (inst_id)
{
instance_destroy()
}
}
//Modificacion
bt_mouse = mouse_check_button(mb_left)
if (bt_mouse)
{
for (i=0;i<48;i+=1)
{
draw_circle(x,y,i,true)
inst_id=collision_circle(x, y, 16, obj_enemy, false, true)
if(inst_id)
{
with (inst_id)
{
instance_destroy()
}
}
}
Ultima modificación
Draw self()
x=mouse_x
y=mouse_y
bt_mouse = mouse_check_button(mb_left)
if (bt_mouse)
{
image_speed = 1;
draw_circle(x,y,sprite_height/2,true)
inst_id=collision_circle(x, y, sprite_height/2, obj_enemy, false, true)
if(inst_id)
{
with (inst_id)
{
instance_destroy()
}
}
}
else {
image_index=0
image_speed = 0;
}
for (i=0;i<instance_number(obj_enemy);i++)
{
enemy[i]=instance_find(obj_enemy,i)
draw_text(10,70+i*15,"arreglo no.: "+string([i])+string(enemy[i]))
}
Algunas funciones de colisiones
x=mouse_x;
y=mouse_y;
draw_self();
btm=mouse_check_button(mb_left)
if (btm)
{ inst_pos=instance_position(x, y,object_1)
if (inst_pos) // Si las posiciones coinciden
{
draw_text(10,10,"Estan chocando con el objeto "+string(inst_pos)) // dibuja
}
}
Función: Place_Metting (x,y,obj) >> return (boolean)
Evento: Draw
Acción: ejecutar código
x=mouse_x;
y=mouse_y;
draw_self()
btm=mouse_check_button(mb_left)
if (btm)
{ inst_metting=place_meeting(x, y,object_1)
if (inst_metting)
x=mouse_x;
y=mouse_y;
draw_self()
btm=mouse_check_button(mb_left)
if (btm)
{ inst_place=instance_place(x, y,object_1)
if (inst_place)
{ draw_text(10,10,"Estan chocando con el objeto "+string(inst_place))
}
}
Otra version:
x=mouse_x;
y=mouse_y;
draw_self()
btm=mouse_check_button(mb_left)
if (btm)
{ inst_place=instance_place(x, y,object_1)
if (inst_place)
{ draw_text(10,10,"Estan chocando con el objeto "+string(inst_place))
with (inst_place)
{
instance_destroy() // destruye el otro objeto.
}
}
}
x=mouse_x;
y=mouse_y;
draw_self()
btm=mouse_check_button(mb_left)
if (btm)
{ draw_circle(x,y,64,true)
inst_point_circle=point_in_circle(object_1.x,object_1.y,x,y,64)
if (inst_point_circle)
{
draw_text(10,10,"Estan chocando con el objeto ")
}
}
ACCIONES DE INSTANCIAS
Descripción: Crea una instancia de cualquier objeto del árbol de recursos; se le debe dar el nombre y la posición del objeto crearlo.
EJEMPLO
DRAG AND DROP SINTAXIS Opciones/Parámetros CÓDIGO EQUIVALENTE GML
Icono
instance_destroy();
{
draw_self();
}
var is_mouse_down;
is_mouse_down = mouse_check_button(mb_left);
if (is_mouse_down)
{
instance_change(object_0, true);
}
DRAG AND DROP SINTAXIS Opciones/Parámetros CÓDIGO EQUIVALENTE GML
Icono Alarm: Es la id de la {
alarma (0-11). var countdown;
Countdown: Es el countdown = 30;
Nombre del Icono valor numérico alarm_set(id alarma, countdown);
Establecer Alarma programado de la }
cuenta regresiva.
Descripción: Establece o lanza una alarma con conteo regresivo la cual es disparada al llegar a zero
EJEMPLO
{
countdown = alarm_get(0);
}
var contador = (countdown <= 0);
if (contador)
{
{
var cuenta_regresiva;
cuenta_regresiva = 60;
alarm_set(0, cuenta_regresiva);
}
{
var x_coord = 0;
var y_coord = 0;
draw_text(x_coord, y_coord, string("Valor: ") +
string(countdown));
}
}
• Layer - The layer that the instance has been assigned to. layer = "Foreground"; enemigo = layer_create(-1000);
• Sprite - The sprite resource assigned to the instance. This variable sprite_index; with (obj_Check)
returns the index of the current sprite for the instance, or -1 if the instance Return Real { if !collision_line(x, y, other.x, other.y,
has no sprite associated with it. obj_Wall, false, true)
{ sprite_index = spr_spotted;
}
else
{ sprite_index = spr_clear;
}
}
• Image Index - The image index of the sprite assigned. This value image_index; if (bt_mouse)
sets the frame of the sprite assigned to the instance, and if the value Return Real { image_index=0}
is greater than the number of frames in the animation it will "loop" else
such that a sprite with 5 frames if set to frame 7 will actually show { image_index=0}
frame 2.
• Image Angle - The angle that the instance should be set to (default image_angle; image_angle = point_direction(x, y,
is 0, where right is 0°, up is 90°, left is 180° and down is 270°). Return Real mouse_, mouse_y);
• Image Alpha - The alpha value for the instance (default is 1) from 0
to 1, where 0 is full transparent and 1 is fully opaque.
Image Alpha - The alpha value for the instance (default is 1) from 0 to 1, image_alpha; image_alpha = clamp(image_alpha - 0.01,
where 0 is full transparent and 1 is fully opaque. Return Real (between 0 and 1) 0, 1);
• Image Blend - The colour to be blended with the instance sprite image_blend; image_blend = make_colour_hsv(255, 255,
(default is white). Return Real random(255));
• Horizontal Scale - The horizontal scale at which the instance sprite image_xscale; if image_xscale < 5
should be drawn (this will also affect the instance bounding box and Return Real {image_xscale += 0.2;
collisions). A scale of 1 indicates no scaling (1:1), smaller values will image_yscale = image_xscale;
scale down (0.5, for example, will half the width of the sprite), larger }
else {instance_create(x,y,obj_Explosion);
values will scale up and negative values will mirror the sprite and
instance_destroy(); }
scale it unless the value used is exactly -1 (in which case the sprite is
just mirrored along the y-axis with no scaling).
• Vertical Scale - The vertical scale at which the instance sprite image_yscale; if image_xscale < 5
should be drawn (this will also affect the instance bounding box and Return Real {image_xscale += 0.2;
collisions). A scale of 1 indicates no scaling (1:1), smaller values will image_yscale = image_xscale;
scale down (0.5, for example, will half the height of the sprite), }
else
larger values will scale up and negative values will flip the sprite and
{instance_create(x,y,obj_Explosion);
scale it unless the value used is exactly -1 (in which case the sprite is
instance_destroy();
just flipped along the y-axis with no scaling). }
• Mask - The mask index for the instance. The default value is -1 mask_index; mask_index = spr_Round;
(which means the instance will use the collision mask for the Return Real
currently assigned sprite index), but if set to any other sprite The above code sets the mask of the
resource, the collision mask for that instance will be used instead of instance to that of the sprite "spr_Round".
the sprite assigned to the sprite index.
• Friction - The friction to use each game frame of the game to slow friction; if abs(speed) > 0
down the instance. This value will simply be deducted from the Return Real { friction = 0.05; }
current speed value each game frame (or added if the speed value is else
negative). { friction = 0; }
• Gravity - Gravity will apply a constant force in the gravity direction gravity; if !place_meeting(x, y + 1, obj_Ground)
(see below) of the instance, influencing its speed (default is 0). Note Return Real { gravity = 0.01;
that gravity is a cumulative force and will accelerate the object if you }
choose not to cap the final speed. else
{ gravity = 0;}
• Gravity Direction - This can be used to set the direction of gravity_direction; if place_meeting(x, y, obj_switch)
movement when the instances gravity is greater than 0 (default is Return Real {
270). Note that directions in GameMaker Studio 2 are calculated as gravity_direction += 180;
0° being right, 90° being up, 180° being left and 270° being down. }
• Score - Set the score variable.
• Lives - Set the lives variable.
• Health - Set the health variable.
DRAG AND DROP SINTAXIS Opciones/Parámetros CÓDIGO EQUIVALENTE GML
Icono
{
Nombre del Icono sprite_index = noone;
Establecer Sprite image_index = 0;
}
{
Establecer Rotación de Sprite image_angle = 180;
Sprite: El nuevo sprite a
}
asignar (sprite_index
Establecer Velocidad de Animacion {
correspondiente, -1 si
image_speed = 0.5;
quieres remover el
}
Establecer Escala del Sprite sprite actual).
{
Frame: la Image_index
image_xscale = 0.25;
(subimangen con la cual
Establecer Canal Alpha del Sprite se cargara la anmacion) image_yscale = 0.25;
}
{
Establecer Color del Sprite image_alpha = 0.5;
}
{
image_blend = $FFD7D1FF & $ffffff;
}
Descripción: Cambia el sprite actual por uno asignado (pasando como parámetro el sprite_index)
EJEMPLO
{ var X = x + -100;
Y = y + 0;
var X2 = x + 100;
var Y2 = y + 0;
var target = collision_line(x, y, x2, y2, noone, true, true);
}
if(target)
{
var existe_0 = false;
existe = instance_exists(noone);
if(existe)
{
with(self)
{
{
hp = -1;
}
}
}
}
DRAG AND DROP SINTAXIS Opciones/Parámetros CÓDIGO EQUIVALENTE GML
Icono Object: Nombre del objeto
del cual se verificará la {
instancia o la ID de la event_inherited();
Nombre del Icono instancia. }
Llamar eventos del Padre (Heredar Not: Es la negación.
Herencia)
Descripción: Habilita para que un objeto hijo pueda heredar eventos y acciones del padre.
EJEMPLO
Objeto: Padre
Evento: Create
Acción: Show_debug_message (“objeto padre creado”)
Objeto: Hijo {
Evento: Create show_debug_message("objeto padre creado")
Acción: }
Call Parent Event
Show_debug_message (“objeto hijo creado”)
{
event_inherited();
}
{ show_debug_message("objeto hijo creado")
}{
ACCIONES DE MOUSES Y TECLADO
If Mouse Pressed
If Mouse Down
If Mouse Released
If Keyboard Pressed
If Keyboard Down
If Keyboard Released
ACCIONES DEL GAMEPAD
mp_linear_step (x,y,speed,check)
x,y: Es la coordenada del objeto que perseguirá
speed: Es la velocidad a la perseguirá el objeto
check: true, si verifica todas las instancias y false si solo verifica los sólidos.
la clausura “all” considera todos los objetos.
mp_linear_step_object(x,y,speed,objeto)
x,y: Es la coordenada del objeto que perseguirá
speed: Es la velocidad a la perseguirá el objeto
Objeto: es el objeto al cual respetará las colisiones (chocará e impedirá su avance).
mp_linear_path
mp_linear_path_object
Potential Functions
mp_potential_settings
mp_potential_step
mp_potential_step_object
mp_potential_path
mp_potential_path_object
Grid Functions
mp_grid_create
mp_grid_destroy
mp_grid_path
mp_grid_add_cell
mp_grid_add_instances
mp_grid_add_rectangle
mp_grid_get_cell
mp_grid_clear_all
mp_grid_clear_cell
mp_grid_clear_rectangle
mp_grid_to_ds_grid
mp_grid_draw
Built In Variables
direction
friction
gravity
gravity_direction
hspeed
vspeed
speed
Other than those variables mentioned above you can also set the instance position directly using the following:
x
y
xprevious
yprevious
xstart
ystart
Movement Functions
motion_add
motion_set
move_towards_point
move_bounce_all
move_bounce_solid
move_contact_all
move_contact_solid
move_outside_all
move_outside_solid
move_random
move_snap
move_wrap
place_snapped
ACCIONES DE COLISION
{
image_blend = $FF00FF1D & $ffffff;
}
}
else
{
{
image_blend = $FFFFFFFF & $ffffff;
}
}
DRAG AND DROP SINTAXIS Opciones/Parámetros CÓDIGO EQUIVALENTE GML
Icono Return: booleaa {
var x_cood = x + 0;
var y_cood = y + 0;
Nombre del Icono var x2_cood = x + 0;
var y2_cood = y + 0;
var expresion = collision_line(x_cood, y_cood,
x2_cood, y2_cood, obj_cuadrado, true, true);
Si la forma de la target = expresion;
colisión }
if(expresion)
{
}
Descripción: Verifica si la instancia choca con una forma de colisión especifica (línea, rectángulo o elipse y devuelve true (semejante al line
cast y line collider de unity). Lanza un rayo desde el inicio (x1,y1) hasta la coordenada final (x2,y2) y almacena el valor (boolen) el retornado.
EJEMPLO
Argument Descripción
Shape Forma a verificar
El objeto a verificar para la
Object
instancia
x1, y1 La posición (coord.) de inicio
x2,y2 La posición (coord.) de fin
Variable que almacenara valor
Target
retornado.
{ draw_self();}
{
x=mouse_x;
y=mouse_y;
draw_text(200,0,string(distance_to_object(obj_cuadrado)))
}
{
var l18026C01_0 = x + 0;
var l18026C01_1 = y + 0;
var l18026C01_2 = x + 100;
var l18026C01_3 = y + 100;
var l18026C01_4 = collision_line(l18026C01_0, l18026C01_1, l18026C01_2,
l18026C01_3, obj_cuadrado, true, true);
target = l18026C01_4;
}
if(l18026C01_4)
{
{ draw_set_colour($FF000000 & $ffffff); }
{
var l23D2FBF7_0 = x + 0;
var l23D2FBF7_1 = y + 0;
var l23D2FBF7_2 = x + 100;
var l23D2FBF7_3 = y + 100;
draw_line(l23D2FBF7_0, l23D2FBF7_1, l23D2FBF7_2, l23D2FBF7_3);
}
}
Este ejemplo lanza un rayo desde el objeto al que esta adjunto el codigo
(obj_circulo) con una longitud de 100 pixeles y si choca con el obj_cuadrado
se dibuja una línea.
Funciones de Colisión
image_index = 1;
}
else image_index = 0;
Funcion collision_ellipse
Sintaxis collision_ellipse( x1, y1, x2, y2, obj, prec, notme ); if collision_ellipse(50, 50, 200, 100, obj_Player, false, true)
Representacion:
{
}
Funcion collision_line ejemplo
Sintaxis collision_line( x1, y1, x2, y2, obj, prec, notme );
Representacion:
with (obj_Enemy)
if inst != noone
{
with (inst) instance_destroy();
}
Place_free(x,y)
También trabaja con sólidos, por tanto comprueba la existencia de una colisión con un objeto sólido.
Argumento Descripción
Dir La dirección añadida.
velocidad La velocidad añadida (Simula una acelaracion).
Descripción
Esta función se suma a la dirección ya la velocidad de movimiento de una instancia, y puede ser muy útil para colisiones y física simple.
Ejemplo:
Var pdir;
Pdir = dirección_punto (other.x, other.y, x, y);
Motion_add (pdir, other.speed);
El código anterior sería llamado en el evento de colisión con otro objeto. Añade a la dirección del movimiento ya la velocidad de la instancia un
vector basado en la posición y velocidad de la otra instancia implicada en la colisión. A continuación, limita la velocidad si pasa de 8 (píxeles por paso).
Place_empty
Verifica si la posición (coordenada esta vacía, sea una instancia solida o no) y devuelve un booleano. Esta función aunque pertenece al grupo de
funciones de colisiones simples se utiliza para simular el movimiento de una instancia a partir de la posición (como es recomendado) y no de la
velocidad propia de la instancia, ya que esta última velocidad dependo de la velocidad en si del juego (room) y puede afectar el rendimiento del
juego debido a que es más fácil recalcular posición que velocidad de Frame (FPS).
Ejemplo de velocidad dependiente de la posición:
Objeto: jugador
Evento Create
Accion: Execute Code:
Spd= 8 // Crea y establece la variable a un valor de 8 para simular el movimiento a 8 pixeles por segundo.
Objeto: jugador
Evento: Step
Accion: Execute Code:
If (keyboard_check(vk_left)) // Si la Tecla es presionada
{
if place_empty(x-spd,y) // Si a 8 (spd) pixeles a la izquierda (-) de la posición del jugador está vacía
{
x -= spd //Dismuye la posición en 8 (-spd) para similar una velocidad del jugador en función de la posición
}
}
Place_free
Realiza la misma función que la anterior, pero solo para objetos solidos (que tenga la propiedad “solido” activada).
Ejemplo:
If (keyboard_check(vk_left)) // Si la Tecla es presionada
{
if place_free(x-spd,y) // Si a 8 (spd) pixeles a la izquierda (-) de la posición del jugador está vacía (evalua solo objetos
solidos
{
x -= spd //Dismuye la posición en 8 (-spd) para similar una velocidad del jugador en función de la posición
}
}
Place_meeting
Igual a las funciones place_free y place_empty, excepto que chequea si en la posición verificada existe un tipo de objeto en especio.
Ejemplo:
If (keyboard_check(vk_left)) // Si la Tecla es presionada
{
if !place_metting(x-spd,y, objeto_x) // Si a 8 (spd) pixeles a la izquierda (-) de la posición del jugador no esta ubicado el
objeto_x
//Nota: se puede usar la cláusula “all” para chequear todas las instancias y que al chocar con cualquier no pueda avanzar.
{
x -= spd //Dismuye la posición en 8 (-spd) para similar una velocidad del jugador en función de la posición
}
}
place_empty
place_free
place_meeting
position_empty
position_meeting
position_change
position_destroy
instance_place
instance_position
collision_circle
collision_ellipse
collision_line
collision_point
collision_rectangle
point_in_rectangle
point_in_triangle
point_in_circle
rectangle_in_rectangle
rectangle_in_triangle
rectangle_in_circle
Physics Collisions