Hola a todos necesito ayuda, en mi juego de vista superior tengo implementados los campos de vision del ejemplo de este foro, pero hay 2 cosas q no me salen:

1 - Como altero el tamaño del campo de vision?
2 - Como hago para q el enemigo no vea a mi personaje si esta detras de un objeto?

Aqui dejo el codigo que estoy utilizando:

//MANEJO DE SPRITE
image_angle=direction //la imagen rota conforme a la direcion del objeto
//AI
//ATACAR

if congelar = 0
    {
if instance_number(Robot)=0 //si no existe jugador
    {
        atacar=false        //atacar es falso
    }   
if instance_number(Robot)>0//si hay por lo menos un jugador
    {
        if (distance_to_object(Robot)<250 //si la distancia al jugador es menor a 250
        and point_direction(x,y,Robot.x,Robot.y)>direction-45 // y la direction hacia el jugador esta entre los
        and point_direction(x,y,Robot.x,Robot.y)<direction+45)// 90° del angulo de vision
        or distance_to_object(Robot)<6 // ó si esta muy cerca
        then
        {
                atacar=true //tiene que ataca
              }
              else //de lo contrario
              {
                if distance_to_object(Robot)>180 //si la distancia hacia el jugador es mayor a 200
                atacar=false                      //debe dejar de atacar
              }
}
if atacar=true //si atacar es verdadero
{
move_towards_point(Robot.x,Robot.y,3);//debe moverse hacia el jugador.
}
}
La vida es como un videojuego...excepto que sin continues...

La primera es facil: el campo de vision se supone que es lo que se ve  de la room, entonces esta dado por el view_wview y por view_hview

La segunda es mas dificil. Lo que se me ocurre es que:
Primero te fijes si el enemigo esta tapado por algo, eso se podria hacer creando una linea imaginaria entre el jugador y el enemigo y ver si esa linea se superpone con una pared
Luego se deberia hacer el objeto visible o no dependieno esa condicion con visible=true o visible=false
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy