Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Temas - luceratto

1
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.
{
    EnemigoFijado = 0;      //esta variable me da error
    instance_create(x,y,obj_torreta_base1);
    image_angle = 90;
}


Evento Step.
{
    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.