Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Gmes en Mayo 29, 2020, 04:04:49 AM

Título: Enemigos que apunten
Publicado por: Gmes en Mayo 29, 2020, 04:04:49 AM
Estoy intentando hacer un juego de tipo nuclear throne pero tengo un prolema, mis 2 neuronas no se les ocurre como hacer que los enemigos te apunten, intenté hacerlo con objectos pero no pude
Título: Re:Enemigos que apunten
Publicado por: Clamud en Mayo 29, 2020, 04:33:27 AM
¿Cómo intentaste hacer la función de apuntar?

Usa la función point_direction para conocer el ángulo entre el objeto enemigo y el jugador
[gml]
angulo = point_direction(x, y, obj_player.x, obj_player.y);
[/gml]
Ese ángulo lo puedes usar para la dirección de movimiento de las balas y para inclinar el sprite del arma.
Título: Re:Enemigos que apunten
Publicado por: Gmes en Mayo 29, 2020, 04:48:24 AM
Cita de: Clamud en Mayo 29, 2020, 04:33:27 AM
¿Cómo intentaste hacer la función de apuntar?

Usa la función point_direction para conocer el ángulo entre el objeto enemigo y el jugador
[gml]
angulo = point_direction(x, y, obj_player.x, obj_player.y);
[/gml]
Ese ángulo lo puedes usar para la dirección de movimiento de las balas y para inclinar el sprite del arma.
Gracias, tengo otro prolema y es que como hago que cada enemigo tenga la pistola y no se vaya a una sola instancia
Título: Re:Enemigos que apunten
Publicado por: T789 en Mayo 29, 2020, 05:13:53 AM
Podrias anclar las armas de los enemigos a su puntos x y

Por ejemplo podrias hacerlo usando los id de las instancias de los enemigos en la sala, pero eso seria bastante tarduoso dependiendo del numero de enemigos que tengas en la sala, se te haria mas facil guardar sus id en una variable global con estructura de array
[gml]
globalvar Enemy, Arm;
[/gml]

[gml]
/// Creation Code de las instancias de obj_enemigo en la room
AE = 0; //posicion del array, cada instancia debe tener un numero distinto
Enemy[AE] = id //guarda el id de cada instancia del enemigo en la array

/// Creation Code de las instancias de obj_arma_enemiga en la room
AA = 0; // el espacio del array debe ser igual que el espacio de la instancia enemigo
Arm[AA] = id; //lo guardamos como en el arma
[/gml]
faltaria que en algun objeto controlador pusieras un codigo para establecer en que parte se anclara cada arma, algo asi
[gml]
/// Event Step
var i;
for(i=0; i < 10; i += 1) //puse 10 como el numero de espacios por recorrer, pero tu ponlo segun los enemigos y armas que quieras
{
Arm.x = Enemy.x;
Arm.y = Enemy.y;
}
[/gml]

Eso serviria para que en cada paso el bucle haga un recorrido por todos los espacios del array y anclar momentáneamente sus puntos x y a cada instancia del enemigo al que pertenece

Bueno yo lo acabo de pensar, puede que no funcione tan perfecto como lo esperabas