nota: uso GM8
estoy haciendo un juego TD y quiero hacer que las torres de arqueros siempre den al objetivo y que no fallen explico:
si una torre dispara la flecha sale disparada a donde esta el enemigo , no a donde ira y aveces falla , lo que quiero es que la flecha siga un poco al enemigo y no falle
para que la torre dispare uso este codigo
target=instance_nearest(x,y,persona_con_palo)
if distance_to_object(target) < 250
{
i=instance_create(x,y,flecha);
i.direction=direction;
}
y para que el enemigo se mueva este
path_start(path1, 3, 0, 1);
STEP de la torre
[gml]
target=instance_nearest(x,y,persona_con_palo)
if distance_to_object(target) < 250
{
if !instance_exists(flecha) {
i=instance_create(x,y,flecha);
}
i.enemyX = target.x;
i.enemyY = target.y;
}
[/gml]
Create de la flecha
[gml]
enemyX = x;
enemyY = y;
pathdir = path_add();
path_add_point(pathdir,x,y,room_speed);
path_add_point(pathdir,enemyX,enemyY,room_speed);
alarm[0] = room_speed*0.5;
[/gml]
Alarm[0]
[gml]
path_start(pathdir,room_speed,path_action_stop,0)
[/gml]
STEP de la flecha
[gml]
l = path_get_length(pathdir);
p = path_position;
d = l*p;
path_change_point(pathdir,1,enemyX,enemyY,room_speed);
l = path_get_length(pathdir);
path_position = d/l;
[/gml]
Lo probe en GM Studio asi que no estoy seguro si funcionara en GM8
Cita de: desplo en Noviembre 14, 2017, 02:06:22 AM
STEP de la torre
[gml]
target=instance_nearest(x,y,persona_con_palo)
if distance_to_object(target) < 250
{
if !instance_exists(flecha) {
i=instance_create(x,y,flecha);
}
i.enemyX = target.x;
i.enemyY = target.y;
}
[/gml]
Create de la flecha
[gml]
enemyX = x;
enemyY = y;
pathdir = path_add();
path_add_point(pathdir,x,y,room_speed);
path_add_point(pathdir,enemyX,enemyY,room_speed);
alarm[0] = room_speed*0.5;
[/gml]
Alarm[0]
[gml]
path_start(pathdir,room_speed,path_action_stop,0)
[/gml]
STEP de la flecha
[gml]
l = path_get_length(pathdir);
p = path_position;
d = l*p;
path_change_point(pathdir,1,enemyX,enemyY,room_speed);
l = path_get_length(pathdir);
path_position = d/l;
[/gml]
Lo probe en GM Studio asi que no estoy seguro si funcionara en GM8
No me anda me da errores de que no encuentra las variables
Cambia lo siguiente en el step de la torre
[gml]
target=instance_nearest(x,y,persona_con_palo)
if distance_to_object(target) < 250
{
if !instance_exists(flecha) {
i=instance_create(x,y,flecha);
}
alarm[0] = 10;
}
[/gml]
Y crea una alarm en la torre
[gml]
i.enemyX = target.x;
i.enemyY = target.y;
alarm[0] = 1;
[/gml]
Cita de: desplo en Noviembre 14, 2017, 02:48:14 AM
Cambia lo siguiente en el step de la torre
[gml]
target=instance_nearest(x,y,persona_con_palo)
if distance_to_object(target) < 250
{
if !instance_exists(flecha) {
i=instance_create(x,y,flecha);
}
alarm[0] = 10;
}
[/gml]
Y crea una alarm en la torre
[gml]
i.enemyX = target.x;
i.enemyY = target.y;
alarm[0] = 1;
[/gml]
No encuentra la variable 1