Bueno, pueden ayudarme? tengo un objeto el cual quiero que haga una accion al detectar que cierto objeto se aproxime al menos a una distancia de x=128 y x=-128 pixeles
mi idea es crear un enemigo que al estar cerca el jugador comienze a disparar...
Pero que solamente sea cuando los objetos esten de frente a frente, si el personaje esta arriba del enemigo este no dispare
Pueden ayudarme con eso?
Puedes usar la función distance_to_object para calcular la distancia entre el jugador y el enemigo, por ejemplo:
if distance_to_object(obj) < 128
{
//tu acción
}
pero eso abarca tanto para "x" como para "y", para también limitar la distancia de los objetos en el eje "y" como deseas, habría que agregar algunas condiciones.
En el evento step del enemigo, usa este código:
[gml]
if distance_to_object(obj_jugador) < 128 and (y > obj_jugador.y - 50 and y < obj_jugador.y + 50)
{
//tu acción de disparar
}
[/gml]
En ese caso sería que si el jugador se encuentra en el rango de -50 a 50 de "y" del enemigo, disparará.
Al usar obj_jugador.y se está haciendo referencia a la posición "y" del jugador, por lo que es útil hacer uso de ello si estamos escribiendo un código desde otro objeto, como aquí lo hacemos desde el objeto enemigo.
Otra forma puede ser:
[Gml]
///En el evento Step del jugador
with obj_enemigo {
if abs(x - other.x) <= 128 and abs(y - other.y) <= 50 {
//Haces lo que quieras
}
}
[/Gml]
PD: Debes colocar en el post el ícono de la versión de GM que estás utilizando.
Cita de: getnoff en Abril 23, 2019, 01:20:46 PM
Puedes usar la función distance_to_object para calcular la distancia entre el jugador y el enemigo, por ejemplo:
if distance_to_object(obj) < 128
{
//tu acción
}
pero eso abarca tanto para "x" como para "y", para también limitar la distancia de los objetos en el eje "y" como deseas, habría que agregar algunas condiciones.
En el evento step del enemigo, usa este código:
[gml]
if distance_to_object(obj_jugador) < 128 and (y > obj_jugador.y - 50 and y < obj_jugador.y + 50)
{
//tu acción de disparar
}
[/gml]
En ese caso sería que si el jugador se encuentra en el rango de -50 a 50 de "y" del enemigo, disparará.
Al usar obj_jugador.y se está haciendo referencia a la posición "y" del jugador, por lo que es útil hacer uso de ello si estamos escribiendo un código desde otro objeto, como aquí lo hacemos desde el objeto enemigo.
Ok, gracias amigo mañana lo pruebo al llegar a la oficina
Cita de: NiuWeb en Abril 23, 2019, 05:50:53 PM
Otra forma puede ser:
[Gml]
///En el evento Step del jugador
with obj_enemigo {
if abs(x - other.x) <= 128 and abs(y - other.y) <= 50 {
//Haces lo que quieras
}
}
[/Gml]
PD: Debes colocar en el post el ícono de la versión de GM que estás utilizando.
Estoy usando Game Maker 8.1
Estoy trabajando en un proyecto, tiene que ver con mi foto de Perfil, pero Claro esa es una imagen de hace 10 Años... Mañana Actualizo la foto de perfil y les dare
mas informacion sobre mi proyecto... Espero poder conseguir buen apoyo aqui... y Gracias