Hola!!! tengo una duda.

Como puedo hacer que los objetos del juego se vayan creando si el personaje pasa cerca de ellos (a un cierta distancia) y si se aleja de nuevo se vuelvan a borrar??
Es que al exportar mi juego a html5 se ve lento y supongo que es porque hay varios objetos en la room..

Gracias!!!!
Una animadora digital muy kawaii :3

Podes usar la función "distance_to_object();" quedándote algo más o menos así:

[gml]
if (distance_to_object(objPlayer) > 50) { //Si la distancia entre el objeto y el personaje es mayor a 50 pixeles.
   instance_deactivate_object(this); //Se desactiva el objeto.
} else { //De lo contrario, si la distancia entre el objeto y el personaje es menor a 50 pixeles.
   instance_activate_object(this); //activamos el objeto.
}
[/gml]

No te conviene borrar y crear ya que bajaría el performance, te conviene más activar y desactivar las instancias ya que de esta forma se consume menos memoria.

Cita de: Iros en Julio 22, 2015, 06:28:19 PM
Podes usar la función "distance_to_object();" quedándote algo más o menos así:

[gml]
if (distance_to_object(objPlayer) > 50) { //Si la distancia entre el objeto y el personaje es mayor a 50 pixeles.
   instance_deactivate_object(this); //Se desactiva el objeto.
} else { //De lo contrario, si la distancia entre el objeto y el personaje es menor a 50 pixeles.
   instance_activate_object(this); //activamos el objeto.
}
[/gml]

No te conviene borrar y crear ya que bajaría el performance, te conviene más activar y desactivar las instancias ya que de esta forma se consume menos memoria.

Desactivar las instancias que no interesa que interactúen en el juego es una buena forma de hacerlo, pero hay que tener cuidado con el hecho de que una instancia desactivada no puede reactivarse a sí misma. Para evitar esto puedes poner esto en una alarma del personaje para que se ejecute cada cierto número de steps a tu gusto:

instance_deactivate_all(true);//desactiva todas las instancias excepto el jugador
instance_activate_region(x-a,y-a,2*a,2*a,true);//activa las instancias en un cuadrado de lado "a" en torno al jugador


Si quieres ocultar sólo cierto tipo de instancias y en un radio del jugador en vez de en un cuadrado, puedes usar esto:

instance_activate_all();//activa todas las instancias
with tipo
{
if distance_to_object(other)>d
instance_deactivate_object(id);//desactiva las instancias del objeto "tipo" que distan más de "d" del jugador
}



Mil gracias si me funciono :D
Una animadora digital muy kawaii :3