Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: seed86 en Abril 24, 2014, 02:44:13 PM

Título: Problema con objetos que disparan a enemigos
Publicado por: seed86 en Abril 24, 2014, 02:44:13 PM
Hola a todos, estoy haciendo un juego plataformas 2D y estaba creando un objeto con apariencia de soldado que pudiese disparar tanto a la izq como a la derecha si un enemigo se le acerca. Mi problema es que el soldado no dispara la primera vez que se le acerca un enemigo, pero en cambio si se le vuelve a acercar un enemigo por segunda vez entonces la bala si se crea. Con estos soldados tambien se puede hablar y despliegan un texto, si hablo con el soldado antes de que se acerque un enemigo este dispara a la primera.
El código creo que está bien pero creo que el error esta en lo que se refiere a los sprites. Si alguien puede ayudarme se lo agradecería.

Este es el código:

Step
//On gard if an enemy is close
if distance_to_object(par_enemy) < 350
{
  attack_mode=1
  if distance_to_object(par_enemy) < 300{shoot=1}
}else
{attack_mode=0; shoot=0;}   


//Face at the nearest enemy while attack_mode is on
if(attack_mode=1)
{
  if (x < instance_nearest(x, y, par_enemy).x){image_xscale = 4;}   
  if (x > instance_nearest(x, y, par_enemy).x){image_xscale = -4;}
}


//Shoot the bullet
if sprite_index=spr_soldierA_shoot
{
  if image_index=3
  {
    if image_xscale>0 {action_create_object_motion(obj_gun_bullet,x+13,y+3,40,0)}
    if image_xscale<0 {action_create_object_motion(obj_gun_bullet,x-13,y+3,40,180)}
  }
}

//Sprites

if attack_mode=1
{
  if shoot=1
  {
  sprite_index = spr_soldierA_shoot;
    image_speed=0.5;
  }
  else  //aiming
  {
    sprite_index = spr_soldierA_shoot;       
    image_index=0;
  }
}
else
{
  if speak=0
  {
    sprite_index = spr_soldierA_speak;       
    image_index=0;
  }else                 //talking
  {
    sprite_index = spr_soldierA_speak;
    image_speed=0.5;
  }
}


Gracias y un saludo. Doy créditos a quien me ayude  ; )