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!
Prueba con move_towards_point(x,y,velocidad);
q tal te va :)
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
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
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!
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!!
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]
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)
Las funciones de gm las puedes ver en la Wiki Gm
http://www.comunidadgm.org/index.php?topic=7739.0
Espero q te sirva :)
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.
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 :-[
Ya esta echo, muchas gracias ntanil :D
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 :)