Abril 08, 2015, 11:33:52 PM Ultima modificación: Abril 14, 2015, 07:10:06 PM por GRreanimation

Mucho gusto, mi apodo es G.R, este es el primer tema que hago en este foro.

ando teniendo un problema con un el sistema de particulas que estoy haciendo. las particulas se encuentran en un objeto que funciona como power up el cual al tocarlo, al personaje se le suma poder en los disparos y hace desaparecer el objeto del power up. cuando entra en contacto con el persoaje, dichas particulas se destruyen y dejan de fluir, pero si no toco el power up (por enden, no se destruye el sistema de particulas) al pasasar al siguente room, las particulas se encuentran en la misma posicion en donde se encontraban en el anterior room, es mas, el juego cuenta con una pantalla de inicio la cual si regreso ahi sin que se destruya las particulas tambien aparecen en esta ventana (solo las particulas, el objeto del power up no).
estas son las lineas de codigo del objeto:

obj_powerup:
create:

snow= part_system_create ();
part_system_depth (snow,1000)

snowflake = part_type_create ()
part_type_shape(snowflake, pt_shape_square);
part_type_scale(snowflake,1,1);
part_type_orientation (snowflake, 0,180,1,0,1);
part_type_size(snowflake,0.10,0.15,-.003,0);
part_type_speed(snowflake,0.5,0.3,0,0);
part_type_direction (snowflake, 85,95,0,4);
part_type_life (snowflake, 120,150)
part_type_gravity(snowflake,0.02,90);
part_type_color2(snowflake,c_green,c_orange);

snow_emitter= part_emitter_create(snow)
part_emitter_region(snow, snow_emitter, x-3,x+3,y,y,ps_shape_ellipse,ps_distr_invgaussian);
part_emitter_stream (snow,snow_emitter,snowflake,-2);

step:

if instance_place(x,y,obj_player)
{   
    obj_player.poder+=1;
    instance_destroy();
    part_emitter_destroy(snow,snow_emitter);
}







¿que puedo hacer para que no aparescan en otro room? desde ya, muchas gracias por su atencion.

Pues pasale simplemente un condicional al inicio de la room, en el código donde estas ejecutando todo esto ponle:


if(room=="Nombre de La Room en la que quieres que aparezcan las partículas"){

El Resto del Código.

}

antes de decirle "room_go_to" osea una linea antes de cambiar de room destruye el sistema de particulas:

part_system_destroy(snow);

podria hacer lo que dices tu @Juanchobanano solo que lo pondria en el codigo de creacion de cada powerup asi puedo ponerle el nombre del room correspondiente, el tema seria como hago si entro al room ¿cual codigo seria para que aparescan de nuevo?

Yo te recomendaría que ese código no lo colocaras en el código de creación de cada powerup. Preferiblemente crea un objeto control de todo tu juego que maneje simultáneamente todos los procesos. En mis juegos acostumbro a crear un obj_control el cual no tiene sprite y lo hago persistente para que se cree solo en todas las rooms (Sin embargo si tienes que crearlo en la primera room de tu juego manuelamente).

pero como hago para indicar que powerup tiene y cual no activarse en cada room?

ok gente, me siento un idiota  XD en primera no lei bien el comentario de Juanchobanano que decia "al inicio de la room" osea poner el evento room start. Fue tan complicado como crear el evento room start y colocar todo el codigo que crea las particulas y en room end, que las destruya, asi cada ves que entraba y salia, se creaban y se destruian. Muchas gracias por su colaboracion :D