Hola! primero que todo gracias por leer mi post :)
Tengo un problema que no logro descifrar
como puedo remover unas particulas una ves que el objeto ya se destruyo en la room( no existe mas ) Pero las particulas continuan
Y no quiero utlizar el sistema de global.fire
Este codigo lo estoy llamando desde un obj_controlador
part_emitter_clear(global.fire,global.effect_fire );
Nota: no quiero utilizar el evento_destroy..
Quiero llamarlo como una variable pero que no sea global
ejemplo
part_emitter_clear(bola.fire,global.effect_fire );
entonces necesito relacionarlo con el obj_ball
Thanks
Hola eams1986
Por lo que noto de tu código, quieres destruir el objeto que genera las partículas pero quieres que las partículas se sigan viendo.
Se me ocurren 2 soluciones:
1- Que el objeto "bola" le pase la variable "fire" a un objeto controlador, luego desde ese objeto controlador eliminas el sistema.
En el Destroy Event del objeto "bola":
controller.fire = fire //El objeto "controller" crea una variable "fire" con el valor de la variable "fire" en el objeto que llama el código
2- Que crees un objeto auxiliar que haga de cadaver, sin sprite y que sólo sirva para almacenar la variable "fire", para que elimine el efecto después.
En el Destroy Event del objeto "bola":
with (instance_create(x,y,cadaver)) {
fire = other.fire //La variable "fire" del objeto "cadaver" almacena el valor de la variable "fire" que tenía el objeto que la crea.
}
Así evitas tener que crear la variable como global
El primer método funciona si el objeto bola es único, sino una segunda bola sobre-escribe la variable de la primera bola y ya no podrás eliminar las partículas.
El segundo método funciona en caso que tengas más de una bola, ahí cada bola tendrá su propio cadaver que guardará su propia variable, en caso contrario, si usas solo una bola, no tiene sentido crear un objeto adicional solo para almacenar una variable.
Saludos
No al contrario amigo quiero destruir las particulas desde el objeto_controlador
como el objeto_ball ya no exists pero me quedan las particulas
Saludos!
Entonces te sirve el primer método.
En el Create Event del objeto controller pone una variable cualquier.
fire = noone
Cuando la Bola crea las partículas o cuando se destruye el objeto, le pasas la variable que guarda el ID del sistema de partículas al controller.
controller.fire = fire
Ahora desde el objeto controller ya tienes una variable llamada "fire" que guarda el ID del sistema de partículas que quieres destruir, sólo asegúrate que la variable no tenga valor "noone" y ya.
Saludos
Hola! Funcionó 😃 pero hay un detalle por que al reiniciar la room ya no funciona?
Pasa que son apeoximadamente 4 bolas!
Entonces cada bola deberia de llevar algo asi ? en el sistema de particulas ya que una particula es diferente a la demas
fire0 = part_system_create();
fire1 = part_system_create();
fire2 = part_system_create();
fire3 = part_system_create();
entonces en el objeto como deberia de quedar ?
algo asi ??
///--FIRE--
with( instance_create(x,y,obj_cadaver))
{
fire0 = other.fire;
fire1 = other.fire;?
fire2 = other.fire;?
fire3 = other.fire;?
}
si le pongo asi me da error :(
Osea queda la particula y reinicia es ahí que ya no funciona antes si.
Saludos y bendiciones.