Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Dublan en Mayo 07, 2017, 10:02:32 PM

Título: Liberar RAM-Particulas
Publicado por: Dublan en Mayo 07, 2017, 10:02:32 PM
Hola Makeros!

Tras mucho investigar, he detectado qué objeto me saca del juego android tras estar usándolo por un tiempo, y es uno que genera partículas para imitar el fuego de una antorcha. Mirando en windows, he visto que la memoria se va a las nubes conforme pasa el tiempo. Este es el código que uso:

Create event

//Particle System
partFire_sys = part_system_create();

//Fire Particle
partFire = part_type_create();
part_type_sprite(partFire,pt_shape_pixel,0,0,1);
part_type_size(partFire,1,2,0,0);
part_type_color2(partFire,c_orange,c_red);
part_type_alpha3(partFire,1,1,0);
part_type_speed(partFire,4,10,0,0);
part_type_direction(partFire,85,95,0,5);
part_type_orientation(partFire,0,359,0,0,0);
part_type_blend(partFire,1);
part_type_life(partFire,20,40);

//Cinder Particle
partCinder = part_type_create();
part_type_shape(partCinder,pt_shape_flare);
part_type_size(partCinder,0.5,1,0,0);
part_type_color2(partCinder,c_orange,c_red);
part_type_alpha3(partCinder,1,1,0);
part_type_speed(partCinder,1,2,0,0);
part_type_direction(partCinder,85,95,0,0);
part_type_blend(partCinder,1);
part_type_life(partCinder,240,320);

//Particle Emitter
partFire_emit = part_emitter_create(partFire_sys);
part_emitter_region(partFire_sys,partFire_emit,x-10,x+10,y-2,y+2,ps_shape_ellipse,ps_distr_linear);


Step event

///particulas + aura
part_emitter_burst(partFire_sys,partFire_emit,partFire,5);
part_emitter_burst(partFire_sys,partFire_emit,partCinder,-10);


Room End event

///Destruir particulas
part_emitter_destroy_all(partFire_sys);
part_system_destroy(partFire_sys);
part_particles_clear(partFire_sys);
instance_destroy()


¿Cómo podría reducir el consumo de memoria con este código o similar? ¿Existe alguna función para ver el consumo de memoria en android?

PD: en el objeto controlador además tengo puesto en el room star el draw_texture_flush().

Mil graciasl