Może być tak:
xx = obj_bohater.x;
yy = obj_bohater.y;
instance_deactivate_region( xx - 300, yy - 300, 600, 600, false, 1 );
instance_activate_region( xx - 300, yy - 300, 600, 600, true );
//Aktywacja obiektow ktorych dzialanie jest niezbedne
instance_activate_object( obj_bohater );
Wtedy tworzysz listę obiektów które muszą być aktywne (na dole ten dopisek), albo tak:
xx = obj_bohater.x;
yy = obj_bohater.y;
for( n = 0; n < instance_count; n += 1 )
{
i = instance_id[n];
if( !instance_exists( i ) )
continue;
// Typ obiektu do dezaktywacji
if( !object_index == o_fog )
continue;
if( point_distance( i.x, i.y, xx, yy ) > 300 )
instance_deactivate_object( id );
}
instance_activate_region( xx - 300, yy - 300, 600, 600, true );
I robisz listę do dezaktywacji ( patrz ten dopisek w kodzie ).