Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: miguelasi2009 en Diciembre 31, 2009, 01:55:57 PM

Título: El enemigo me dispara cuando me encuentro cerca
Publicado por: miguelasi2009 en Diciembre 31, 2009, 01:55:57 PM
Hola a todos!

Tengo un problema con mi proyecto. Resulta que quiero que el enemigo me dispare una bola de fuego cuando me encuentro cerca (cuando mago.x <= dragon.x-128). Hasta hay bien.  Pero no encuentro ningun evento para introducirle el script y si lo hago en el momento de crearlo del objeto solo me lo hace una vez y encima mal...

La direccion de la bola de fuego debe de ser x o mago.x?

como puedo ver el script de las acciones como por ejemplo create moving instance...
necesito hacer un script pero no logro encontrar por ninguna parte el script de esta accion.



Un saludo y gracias!
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: soccer2008 en Enero 01, 2010, 09:36:09 PM
Prueba con move_towards_point(x,y,velocidad); q tal te va  :)
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: bartolojc en Enero 01, 2010, 10:03:09 PM
a ver, no se si entend? bien, quieres saber como hacer para que a cierta distancia el enemigo te ataque, en concreto a 128, puedes usar distance_to_object

if distance_to_object(dragon)<128
{
instance_create(x,y,obj_bolafuego)
with(obj_bolafuego) {move_towards_point(mago.x,mago.y,velocidad
}

con este c?digo, si el mago esta a 128 de drag?n, el drag?n crea una bola de fuego, y la bola prosigue al mago, este c?digo se debe poner en step.
no se si es esa la respuesta a tu pregunta.
un saludo
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: Daz en Enero 01, 2010, 10:11:32 PM
No, veamos... Si quieres saber cuando un objeto est? cerca de otro, no es como tu has puesto, si no as?:


if (distance_to_object(objProtagonista)<distancia)
{
   //Aqu? lo que sea
}


Para que el drag?n dispare cuando te encuentras cerca de ?ste, debes usar STEP.


if (distance_to_object(objProtagonista)<128)
{
   instance_create(x,y,objBoladeFuego);
}


?Pero! Si pruebas ?ste c?digo, el drag?n crear? un objeto en cada STEP si tu personaje est? a 128 de distancia de ?ste. Para que no los cree en cada STEP, podr?amos usar variables.


Create:

disparo=0;
time=0; //En vez de usar una alarma, usar? una variable, lo prefiero.



STEP:

//Si el protagonista est? cerca, lanzar? una bola de fuego, siempre y cuando la variable disparo sea igual a 0
if (distance_to_object(objProtagonista)<128 and disparo=0)
{
   instance_create(x,y,objBoladeFuego);
   disparo=1;
   time=60;
}


//?sto har? que el enemigo espere un tiempo cada vez que vaya a lanzar una bola de fuego:
if (time>0 and disparo=1){
time-=1;
}

if (time<1){
disparo=0;
}



Y, como extra, si quieres que la bola de fuego tenga la direcci?n del protagonista cuando ?sta es lanzada, usa:


//Si el protagonista est? cerca, lanzar? una bola de fuego, siempre y cuando la variable disparo sea igual a 0
if (distance_to_object(objProtagonista)<128 and disparo=0)
{
   (instance_create(x,y,objBoladeFuego)).direction=point_direction(x,y,objProtagonista.x,objProtagonista.y);
   disparo=1;
   time=60;
}


//?sto har? que el enemigo espere un tiempo cada vez que vaya a lanzar una bola de fuego:
if (time>0 and disparo=1){
time-=1;
}

if (time<1){
disparo=0;
}


EDIT: bartolojc se me adelant?, pero creo que mi respuesta est? algo m?s completa, igual la dejo aqu? :P
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: miguelasi2009 en Enero 03, 2010, 09:13:53 PM
guau! muchisima gracias chicos la verdad que asi da gusto! solo una duda conoceis alguna pagina o tutorial en donde pueda ver las funciones de las que dispone Game maker? eche un vistazo al manual de game maker pero algunas no las encuentro.

Un saludo y gracias!
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: Efa games en Enero 15, 2010, 09:24:41 PM
esto no estaria mal??
no seria:
//Si el protagonista est? cerca, lanzar? una bola de fuego, siempre y cuando la variable disparo sea igual a 0
if (distance_to_object(objProtagonista)<128 and disparo<1)
{
    instance_create(x,y,objBoladeFuego);
    disparo=1;
    time=60;
}


//?sto har? que el enemigo espere un tiempo cada vez que vaya a lanzar una bola de fuego:
if (time>0 and disparo=1){
time-=1;
}

if (time<0){
disparo=0;
}


se modifica if (distance_to_object(objProtagonista)<128 and disparo=0)
a if (distance_to_object(objProtagonista)<128 and disparo<1)
ya que si ponemos un igual nunca se volvera a repetir ya que cuando se reduce de 60 ha 0 se nos pasa la global de 0 y no senos cumple la global, ya vereis probadlo!!
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: cruzado en Febrero 06, 2010, 12:35:52 PM
Disculpar el reflote, pero tengo un problema con lo que habeis puesto en esta parte:

//?sto har? que el enemigo espere un tiempo cada vez que vaya a lanzar una bola de fuego:
if (time>0 and disparo=1){
time-=1;
}

if (time<0){
disparo=0;
}[code]

Me da un fallo y no puedo hacer nada.
Lo he echo en game maker 8, ejecutando un codigo.
[/code]
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: soccer2008 en Febrero 07, 2010, 01:46:05 AM
Bueno amigo, te puedo dejar un ejemplo para que puedas ver esta cuesti?n de manera m?s pr?ctica y sencilla, lo malo es q el ejemplo lo hize en gm 5 xq es la unica versi?n q tengo =(=(=(=(...espero q igual te sirva :-[

http://img42.xooimage.com/files/f/3/5/ejemplo-de-vision-186984c.rar (http://img42.xooimage.com/files/f/3/5/ejemplo-de-vision-186984c.rar)
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: Gabriel Moreno en Febrero 07, 2010, 06:17:32 AM
Las funciones de gm las puedes ver en la Wiki Gm

http://www.comunidadgm.org/index.php?topic=7739.0

Espero q te sirva :)
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: Daz en Febrero 07, 2010, 11:04:18 AM
He hecho una peque?a modificaci?n al c?digo, que hab?a una cosilla mal. He hecho un ejemplo por si alguien no sabe c?mo se usa.
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: soccer2008 en Febrero 07, 2010, 05:14:20 PM
No se si ser? mi ejemplo el que haz modificado amigo Ntanil, pero no puedo abrirlo  :'( (creo q est? mal comprimido), pero ser?a interesante verlo  ;), vuelvelo a subir please :-[
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: cruzado en Febrero 07, 2010, 08:07:25 PM
Ya esta echo, muchas gracias ntanil  :D
Título: Re: El enemigo me dispara cuando me encuentro cerca
Publicado por: Daz en Febrero 08, 2010, 07:36:53 PM
Cita de: soccer2008 en Febrero 07, 2010, 05:14:20 PM
No se si ser? mi ejemplo el que haz modificado amigo Ntanil, pero no puedo abrirlo  :'( (creo q est? mal comprimido), pero ser?a interesante verlo  ;), vuelvelo a subir please :-[

A m? se me descarga perfectamente. Quiz?s es porque est? hecho en GM8 y t? est?s usando una versi?n anterior. Pero si te da un problema al abrir el .zip no s? que pasa. Y no, no es tu ejemplo, es uno propio con los c?digos que puse algo m?s arriba :)