Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: THE_ALS12 en Diciembre 29, 2014, 11:37:33 AM

Título: alguien me ayuda a que los enemigos me disparen?
Publicado por: THE_ALS12 en Diciembre 29, 2014, 11:37:33 AM
quiero hacer que un enemigo este caminando, y quando este, por ejemplo a 200 px me mire, se me acerque un poco y me dispare, pero no lo se hacer.

alguien me podria explicar mas o menos como hacerlo? :P
Título: Re:alguien me ayuda a que los enemigos me disparen?
Publicado por: omick en Diciembre 30, 2014, 07:33:34 AM
Hola..  creo que puedo ayudarte.. en realidad es facil..
en el evento create del enemigo..   pon:  atacar=0;  esa variable es para que cuando valga cero es que no te haria caso.
ahora en step del enemigo pones:
   if aracar=0{        //si no esta atacando
      if distance_to_object(jugador)<200{    // si esta a menos de 200 px del jug
          atacar=.5}  /*prepararse para atacar*/ else{atacar=0} //si esta a mas de 200 px ya estara sin hacerte caso
     }
  if atacar =.5{ 
      move_towards_point(jugador.x,jugador.y) //para que se acerque un poco
     }
if distance_to_object(jugador)<100 { // si ya esta mas cerca atacará
atacar=1}
if atacar=1{ // aqui crea por ejemplo una bola de fuego
if instance_number(objBolaFuego)=0{// solo creara una a la vez
   instance_create(x,y,objBolaFuego)}
}

Ahora creas el objeto    objBolaFuego  y en create pones:
      direction=point_direction(x,y,jugador.x,jugador.y)
      speed=10 // o la que quieras..



Título: Re:alguien me ayuda a que los enemigos me disparen?
Publicado por: THE_ALS12 en Diciembre 30, 2014, 02:03:37 PM
Cita de: omick en Diciembre 30, 2014, 07:33:34 AM
Hola..  creo que puedo ayudarte.. en realidad es facil..
en el evento create del enemigo..   pon:  atacar=0;  esa variable es para que cuando valga cero es que no te haria caso.
ahora en step del enemigo pones:
   if aracar=0{        //si no esta atacando
      if distance_to_object(jugador)<200{    // si esta a menos de 200 px del jug
          atacar=.5}  /*prepararse para atacar*/ else{atacar=0} //si esta a mas de 200 px ya estara sin hacerte caso
     }
  if atacar =.5{ 
      move_towards_point(jugador.x,jugador.y) //para que se acerque un poco
     }
if distance_to_object(jugador)<100 { // si ya esta mas cerca atacará
atacar=1}
if atacar=1{ // aqui crea por ejemplo una bola de fuego
if instance_number(objBolaFuego)=0{// solo creara una a la vez
   instance_create(x,y,objBolaFuego)}
}

Ahora creas el objeto    objBolaFuego  y en create pones:
      direction=point_direction(x,y,jugador.x,jugador.y)
      speed=10 // o la que quieras..

no se nada sobre esto, pero he de poner esto o como? esque me sale error :(
Título: Re:alguien me ayuda a que los enemigos me disparen?
Publicado por: Clamud en Diciembre 30, 2014, 05:40:00 PM
Aquí se hizo una explicación de un código para hacer algo parecido:
http://www.comunidadgm.org/general/podcast-game-maker-capitulo-1-(nuevo!!)/ (http://www.comunidadgm.org/general/podcast-game-maker-capitulo-1-(nuevo!!)/)
Esto de lo que más se pregunta en el foro, escribe "distancia" en el buscador y vas a encontrar muchos temas relacionados.
Título: Re:alguien me ayuda a que los enemigos me disparen?
Publicado por: omick en Diciembre 30, 2014, 06:27:10 PM
Hola otra vez.. tal vez el problema sea que si solo copiaste y pegaste fijate bien que despues  de los signos // se refiere a comentario.  asegurate que la frase de comentario termine en la misma linea de donde estan los signos.
  Bueno y si es otro error trata de leerlo para que sepas en que falla, eso te empezara a incrementar tu nivel, tambien si utilizas codigos en vez de d&d .. ..  y claro , ya te emviaron otra respuesta pero esta un poco mas compleja para ti que empieza s a prigramar en gml.... trata de leer el codigo lentamente para que no lo veas como jeroglificos jejeje..   if  es una pregunta de condicion y lo que este encerrado entre dos corcheas {} es li que sucedera si esa condicion se cumple......   Bueeno espro haber podido ayudarte
Título: Re:alguien me ayuda a que los enemigos me disparen?
Publicado por: TheWood en Diciembre 30, 2014, 06:37:03 PM
Cita de: omick en Diciembre 30, 2014, 07:33:34 AM
Hola..  creo que puedo ayudarte.. en realidad es facil..
en el evento create del enemigo..   pon:  atacar=0;  esa variable es para que cuando valga cero es que no te haria caso.
ahora en step del enemigo pones:
   if aracar=0{        //si no esta atacando
      if distance_to_object(jugador)<200{    // si esta a menos de 200 px del jug
          atacar=.5}  /*prepararse para atacar*/ else{atacar=0} //si esta a mas de 200 px ya estara sin hacerte caso
     }
  if atacar =.5{ 
      move_towards_point(jugador.x,jugador.y) //para que se acerque un poco
     }
if distance_to_object(jugador)<100 { // si ya esta mas cerca atacará
atacar=1}
if atacar=1{ // aqui crea por ejemplo una bola de fuego
if instance_number(objBolaFuego)=0{// solo creara una a la vez
   instance_create(x,y,objBolaFuego)}
}

Ahora creas el objeto    objBolaFuego  y en create pones:
      direction=point_direction(x,y,jugador.x,jugador.y)
      speed=10 // o la que quieras..

creo pero creo,que ahy un error en move_towards_point, seria asi en esa parte move_towards_point(jugador.x,jugador.y,velocidad cualquiera)

asi y en la primera variable pusiste aracar y tiene que ser atacar


//Disculpen mi falta de ortografia y diccion  :-[