hola, soy nuevo en la comunidad, o la primera vez que pido ayuda xD.
Estoy tratando de hacer un tower defence, y tengo problemas con las torretas.
La idea es que cuando un enemigo entra en el radio de alcance, la torreta le apunta y le dispara, el problema es que la torreta sigue apuntando y disparando al primer enemigo, por que detecta a otro igual cerca.
Lo que pense es tomar la id del objeto enemigo, y que la torreta apunte y dispare hacia esa id.
Otro problema que tengo es que al programar mas de 1 enemigo diferente, el programa le da prioridad al enemigo 1, luego al 2, luego al tres, es decir que, si la oleada es así:
X O X O X O
Siendo O el enemigo 1 y X el enemigo 2, la torreta apunta y elimina primero a todos los enemigos 1, cuando ya no hay enemigos 1, ahi comienza a eliminar al enemigo 2. Lo que yo pensaba era que apunte al enemigo mas cercano y lo deje en paz cuando este salga del radio de alcance.
----------------------
Mas aya de todo eso, me las estoy arreglando para ver como hago, leyendo el manual de gms y viendo ejemplos, y por ahora quiero que la torreta apunte al enemigo 1, desarrolle este código pero me da error:
Evento Create.
Evento Step.
Y el error que me da es el siguiente >:( :
###################################################
FATAL ERROR in
action number 1
of Step Event0
for object obj_torreta_canon1:
Push :: Execution Error - Variable Get -7.EnemigoFijado(100006, 0)
at gml_Object_obj_torreta_canon1_Step_0 (line 2) - if EnemigoFijado = 0
###################################################
El error se produce en el momento que coloco la torreta en el mapa.
Estoy tratando de hacer un tower defence, y tengo problemas con las torretas.
La idea es que cuando un enemigo entra en el radio de alcance, la torreta le apunta y le dispara, el problema es que la torreta sigue apuntando y disparando al primer enemigo, por que detecta a otro igual cerca.
Lo que pense es tomar la id del objeto enemigo, y que la torreta apunte y dispare hacia esa id.
Otro problema que tengo es que al programar mas de 1 enemigo diferente, el programa le da prioridad al enemigo 1, luego al 2, luego al tres, es decir que, si la oleada es así:
X O X O X O
Siendo O el enemigo 1 y X el enemigo 2, la torreta apunta y elimina primero a todos los enemigos 1, cuando ya no hay enemigos 1, ahi comienza a eliminar al enemigo 2. Lo que yo pensaba era que apunte al enemigo mas cercano y lo deje en paz cuando este salga del radio de alcance.
----------------------
Mas aya de todo eso, me las estoy arreglando para ver como hago, leyendo el manual de gms y viendo ejemplos, y por ahora quiero que la torreta apunte al enemigo 1, desarrolle este código pero me da error:
Evento Create.
Código [Seleccionar]
{
EnemigoFijado = 0; //esta variable me da error
instance_create(x,y,obj_torreta_base1);
image_angle = 90;
}
Evento Step.
Código [Seleccionar]
{
if EnemigoFijado = 0 //y se supone que el error esta aqui.
{
if distance_to_object(obj_enemigo_terrestre1) < 112
{
var EnemigoID = obj_enemigo_terrestre1.id
EnemigoFijado = 1
exit;
}
}
if EnemigoFijado = 1
{
image_angle = point_direction(x,y,EnemigoID.x,EnemigoID.y);
if distance_to_object(EnemigoID) > 112
{
EnemigoID = 0
EnemigoFijado = 0
}
}
}
Y el error que me da es el siguiente >:( :
###################################################
FATAL ERROR in
action number 1
of Step Event0
for object obj_torreta_canon1:
Push :: Execution Error - Variable Get -7.EnemigoFijado(100006, 0)
at gml_Object_obj_torreta_canon1_Step_0 (line 2) - if EnemigoFijado = 0
###################################################
El error se produce en el momento que coloco la torreta en el mapa.