Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Fa ._. en Noviembre 14, 2017, 12:13:54 AM

Título: Que la flecha siempre de al objetivo
Publicado por: Fa ._. en Noviembre 14, 2017, 12:13:54 AM
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);
Título: Re:Que la flecha siempre de al objetivo
Publicado por: 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
Título: Re:Que la flecha siempre de al objetivo
Publicado por: Fa ._. en Noviembre 14, 2017, 02:42:36 AM
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
Título: Re:Que la flecha siempre de al objetivo
Publicado por: 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]


Título: Re:Que la flecha siempre de al objetivo
Publicado por: Fa ._. en Noviembre 14, 2017, 01:57:53 PM
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