hola amigos nunca he utilizado en mi juego eso de que mi enemigo me ataque solo si estoy a cierta distancia de el,hasta ahora utilicé lo de perseguir al jugador a sol y a sombra pero para uno de los bosses quiero cambiar el método,la idea es que el enemigo se mantenga estático y que ataque cuando me acerque a el,podrían ayudarme?
Leete este articulo:
http://www.thenicerevenge.com/es/tag/finite-state-machines/ (http://www.thenicerevenge.com/es/tag/finite-state-machines/)
Suponiendo que el jugador es obj_player y el enemygo es obj_enemy
En el step de obj_enemy
if obj_player.x > obj_enemy.x-20
{
//codigo de atacar.
}
Lo que hacemos es preguntar si la la posicion de obj_player es menor a la posicion del enemy más 20 ataca.
Por ejemplo.
Obj_player esta en x = 200
Y
Obj_enemy esta en x = 250
Si obj_player se acerca a obj_enemy la x de obj_player aumenta.
Cuando obj_player este en 230 atacara.
obj_enemy.x-20 es como decir 250 - 20 = 230.
Esto solo vale si obj_player se acerca por delante. Para hacerlo por detras hay que hacer otro if.
asi.
if obj_player.x > obj_enemy.x-20
{}
if obj_player.x < obj_enemy.x+20
{}
Ahora es +20 y con el simbolo cambiado a < (menor que).
Es mejor hacerlo asi, que ponerlo todo en el mismo if con or (||)
Pero para ponerlo todo en el mismo if es asi:
if obj_player.x < obj_enemy.x-20 || obj_player.x < obj_enemy.x+20
{}