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

#4 Octubre 28, 2018, 12:32:53 PM Ultima modificación: Octubre 28, 2018, 03:14:18 PM por eams1986
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.