Octubre 12, 2017, 12:02:47 AM Ultima modificación: Octubre 15, 2017, 04:41:19 AM por Naitsabes0
Pues Tengo efectos como la nieve, la lluvia y los fuego artificiales aplicando, por ejemplo para hacer la nieve aplico este codigo:

obj_Particula_Nieve
CREATE
///Sistema de particula
//Creamos el sistema de particulas
nieve = part_system_create();
part_system_depth(nieve, 50); //Produndidad

//Creamos un nuevo tipo de particulas
particula_nieve = part_type_create();
part_type_shape(particula_nieve,pt_shape_snow); //La forma de la particula
part_type_orientation(particula_nieve,0,0,0,0,1); //La rotacion aleatoria de la particula
part_type_size(particula_nieve,0.05,0.25,0,0); //Tamaño aleatorio de la particula
part_type_speed(particula_nieve,1,1.5,0.05,0); //Velocidad de la particula
part_type_direction(particula_nieve,270,270,0,4); //Direccion de la particula
part_type_life(particula_nieve,180,210); //Duracion de la particula

//Creamos en el emisor
nieve_emisor = part_emitter_create(nieve);
//Establecer region de la habitacion donde se creara el emisor, el perfil y la forma de distribucion
part_emitter_region(nieve,nieve_emisor,0-100,room_width+100,-10,-5,ps_shape_ellipse,ps_distr_linear);
//Empezamos a emitir particulas cada 0.20 segundos
part_emitter_stream(nieve,nieve_emisor,particula_nieve,-5);

¿Pero saben como hacer corazones?

La razón de esto es que aplicare eventos del año ami juego a modo de secreto, el nivel navidad tendría este código, ya que es normal asimilar la nieve con navidad, aunque en mi país hay mas calor que frió en esa época, por otro lado los corazones serian por un evento de "San valentin", y claro encontrar corazones en esa fecha es como encontrar gente disfrazada de "Viejo pascuero" o como sea que le llamen en su país.


Cita de: NiuWeb en Octubre 12, 2017, 12:08:56 AM
https://docs.yoyogames.com/source/dadiospice/002_reference/particles/particle%20types/part_type_sprite.html

¿Y según tu como aplicaría esto en las partículas? tendría que crear un sprite con la forma "corazon" para que se vea, ya que no se puede crear por código?

Exacto.
(No es que no se pueda, es que es innecesariamente complejo —además dibujar un sprite gasta mucho menos procesamiento que un montón de puntos en forma de corazón—).
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Octubre 12, 2017, 12:58:18 AM
Exacto.
(No es que no se pueda, es que es innecesariamente complejo —además dibujar un sprite gasta mucho menos procesamiento que un montón de puntos en forma de corazón—).
¿Y como debería encajar ese tal part_type_sprite en el código? algo que me queda claro es que tendría que eliminar esa función part_type_shape, ya que debería reemplazarlo, o al menos es lo que puedo intuir.

En el manual hay un ejemplo, ¿no?
Cita de: ¡Vaya! Parece que el manual sí trae un ejemploExample:
[gml]
global.p1 = part_type_create();
part_type_sprite(global.p1 , spr_Coins, 1, 0, 0);
part_type_size(global.p1, 1, 3, 0, 0);
part_type_scale(global.p1, 1, 1);
part_type_colour1(global.p1, c_white);
part_type_alpha2(global.p1, 1, 0);
part_type_speed(global.p1, 2, 4, 0, 0);
part_type_direction(global.p1, 0, 180, 0, 0);
part_type_gravity(global.p1, 0.20, 270);
part_type_orientation(global.p1, 0, 0, 0, 0, 1);
part_type_blend(global.p1, 1);
part_type_life(global.p1, 15, 60);
[/gml]

The above code sets the particle type indexed in the global variable "p1" to the shape of the sprite indexed in "spr_Coins", and then sets various other particle properties.
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Octubre 12, 2017, 02:19:01 AM
En el manual hay un ejemplo, ¿no?
Cita de: ¡Vaya! Parece que el manual sí trae un ejemploExample:
[gml]
global.p1 = part_type_create();
part_type_sprite(global.p1 , spr_Coins, 1, 0, 0);
part_type_size(global.p1, 1, 3, 0, 0);
part_type_scale(global.p1, 1, 1);
part_type_colour1(global.p1, c_white);
part_type_alpha2(global.p1, 1, 0);
part_type_speed(global.p1, 2, 4, 0, 0);
part_type_direction(global.p1, 0, 180, 0, 0);
part_type_gravity(global.p1, 0.20, 270);
part_type_orientation(global.p1, 0, 0, 0, 0, 1);
part_type_blend(global.p1, 1);
part_type_life(global.p1, 15, 60);
[/gml]

The above code sets the particle type indexed in the global variable "p1" to the shape of the sprite indexed in "spr_Coins", and then sets various other particle properties.
No crea nada, y para crea una imagen se le debe dar un sprite al objeto, ademas que la imagen se queda estancada en la misma posición donde fue creado el objeto.

Eso significa que algo estás haciendo mal, ¿no crees? Muestra el código que escribiste.
(Y no, no se necesita darle un sprite al objeto que crea la partícula).
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Octubre 12, 2017, 05:40:07 PM
Eso significa que algo estás haciendo mal, ¿no crees? Muestra el código que escribiste.
(Y no, no se necesita darle un sprite al objeto que crea la partícula).
///Sistema de particula
global.p1 = part_type_create();
part_type_sprite(global.p1 , spr_Corazon, 1, 0, 0);
part_type_size(global.p1, 1, 3, 0, 0);
part_type_scale(global.p1, 1, 1);
part_type_colour1(global.p1, c_white);
part_type_alpha2(global.p1, 1, 0);
part_type_speed(global.p1, 2, 4, 0, 0);
part_type_direction(global.p1, 0, 180, 0, 0);
part_type_gravity(global.p1, 0.20, 270);
part_type_orientation(global.p1, 0, 0, 0, 0, 1);
part_type_blend(global.p1, 1);
part_type_life(global.p1, 15, 60);

//Viejo código comentado
/*
//Creamos el sistema de particulas
nieve = part_system_create();
part_system_depth(nieve, 50); //Produndidad

//Creamos un nuevo tipo de particulas
particula_nieve = part_type_create();
part_type_shape(particula_nieve,pt_shape_snow); //La forma de la particula
part_type_color1(particula_nieve,55295); //El color de la particula
part_type_orientation(particula_nieve,0,0,0,0,1); //La rotacion aleatoria de la particula
part_type_size(particula_nieve,0.05,0.25,0,0); //Tamaño aleatorio de la particula
part_type_speed(particula_nieve,1,1.5,0.05,0); //Velocidad de la particula
part_type_direction(particula_nieve,180,180,0,4); //Direccion de la particula
part_type_life(particula_nieve,180,210); //Duracion de la particula

//Creamos en el emisor
nieve_emisor = part_emitter_create(nieve);
//Establecer region de la habitacion donde se creara el emisor, el perfil y la forma de distribucion
part_emitter_region(nieve,nieve_emisor,0-100,room_width+100,-10,room_height-5,ps_shape_ellipse,ps_distr_linear);
//Empezamos a emitir particulas cada 0.20 segundos
part_emitter_stream(nieve,nieve_emisor,particula_nieve,-5);

Se supone que era un ejemplo, no que lo tenías que copiar tal cual como estaba -_- XD. Lee la documentación y adapta la función a tu código.
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Octubre 13, 2017, 01:33:06 AM
Se supone que era un ejemplo, no que lo tenías que copiar tal cual como estaba -_- XD. Lee la documentación y adapta la función a tu código.
No pude adaptarlo.

................................................

En tu caso sería así:
[gml]
particula_nieve = part_type_create();
part_type_sprite(particula_nieve, sprCorazon, true, true, false); //La forma de la particula
part_type_color1(particula_nieve,55295); //El color de la particula
part_type_orientation(particula_nieve,0,0,0,0,1); //La rotacion aleatoria de la particula
part_type_size(particula_nieve,0.05,0.25,0,0); //Tamaño aleatorio de la particula
part_type_speed(particula_nieve,1,1.5,0.05,0); //Velocidad de la particula
part_type_direction(particula_nieve,180,180,0,4); //Direccion de la particula
part_type_life(particula_nieve,180,210); //Duracion de la particula
[/gml]
Realmente pienso que era sólo cuestión de leer.
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Octubre 13, 2017, 05:58:33 PM
................................................

En tu caso sería así:
[gml]
particula_nieve = part_type_create();
part_type_sprite(particula_nieve, sprCorazon, true, true, false); //La forma de la particula
part_type_color1(particula_nieve,55295); //El color de la particula
part_type_orientation(particula_nieve,0,0,0,0,1); //La rotacion aleatoria de la particula
part_type_size(particula_nieve,0.05,0.25,0,0); //Tamaño aleatorio de la particula
part_type_speed(particula_nieve,1,1.5,0.05,0); //Velocidad de la particula
part_type_direction(particula_nieve,180,180,0,4); //Direccion de la particula
part_type_life(particula_nieve,180,210); //Duracion de la particula
[/gml]
Realmente pienso que era sólo cuestión de leer.
La pantalla permanece completamente oscura sin hacer nada.

///Sistema de particula
particula_nieve = part_type_create();
part_type_sprite(particula_nieve, spr_Corazon, true, true, false); //La forma de la particula
part_type_color1(particula_nieve,55295); //El color de la particula
part_type_orientation(particula_nieve,0,0,0,0,1); //La rotacion aleatoria de la particula
part_type_size(particula_nieve,0.05,0.25,0,0); //Tamaño aleatorio de la particula
part_type_speed(particula_nieve,1,1.5,0.05,0); //Velocidad de la particula
part_type_direction(particula_nieve,180,180,0,4); //Direccion de la particula
part_type_life(particula_nieve,180,210); //Duracion de la particula

mmm... es extraño. ¿La consola o el GM te muestran algún error? ¿Cómo creas las partículas (no el emisor ni el tipo, las partículas en sí) en el juego?
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Octubre 14, 2017, 03:22:01 AM
mmm... es extraño. ¿La consola o el GM te muestran algún error? ¿Cómo creas las partículas (no el emisor ni el tipo, las partículas en sí) en el juego?
No hay errores si coloco un objeto que crea partículas en la habitación, este lo crea, pero cuando pongo en la habitación el objeto con los códigos que me has demostrado, este simplemente no emite nada, dando la sensación que la habitación esta vacía, no hay error en la consola, simplemente este código no emite nada en la habitación.