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
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..
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 :(
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.
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
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 :-[