+= 1;// 3shape[i] = pt_shape_star; i += 1;// 4shape[i] = pt_shape_circle; i += 1;// 5shape[i] = pt_shape_ring; i += 1;// 6shape[i] = pt_shape_sphere; i += 1;// 7shape[i] = pt_shape_flare; i += 1;// 8shape[i] = pt_shape_spark; i += 1;// 9shape[i] = pt_shape_explosion; i += 1;// 10shape[i] = pt_shape_cloud; i += 1;// 11shape[i] = pt_shape_smoke; i += 1;// 12shape[i] = pt_shape_snow; i += 1;// 13nShapes = i; //13// cria umas variaveis pras posicoes na teladx = (room_width / (nShapes + 1)) * 2; // distancia entre emitters// organiza o sistema de particulas// cria o sistemapartSys = part_system_create();for(i = 0; i < nShapes; i += 1){ // cria a particula partType[i] = part_type_create(); // um tipo pra cada shape part_type_shape(partType[i], shape[i]); // coloca a shape no tipo (equivalente a sprite_index) part_type_size(partType[i], 1, 1, 0, 0); // tamanho real, sem escala (ou: escala=1) part_type_scale(partType[i], 1, 1); // proporcao (x, y) (equivalente a image_xscale E image_yscale) part_type_orientation(partType[i], 0, 0, 0, 0, 0); // as particulas sempre saem giradas no angulo=0 (equivalente a image_angle) part_type_color1(partType[i], $ffffff); // a cor a mesclar a sprite da particula (branco resulta na cor original) (equivalente a image_blend) part_type_alpha1(partType[i], 1); // opacidade exatamente igual a da sprite (equivalente a image_alpha) part_type_blend(partType[i], 0); // blend nao e aditivo (equivalente a usar draw_set_blend_mode) part_type_life(partType[i], 30, 30); // um segundo de vida (suficiente pro F9) (equivalente a usar um alarme com instance_destroy()) // nao usarei part_type_step(ind,step_number,step_type) ou part_type_death(ind,death_number,death_type) // nao faz sentido usa-los pra mostrar cada particula em separado part_type_speed(partType[i], 0, 0, 0, 0); // velocidade nula (equivalente a definir speed) part_type_direction(partType[i], 0, 0, 0, 0); // direcao igual a 0 graus, sempre (equivalente a definir direction) part_type_gravity(partType[i], 0, 0); // aceleracao zero (equivalente a definir gravity E gravity_angle) // cria o emissor xi[i] = ((1 + i) * dx) mod room_width; //posicao inicial (X) de cada emissor yi[i] = (room_height / 3) * (1 + ((1 + i) * dx) div room_width);//posicao inicial (Y) de cada emissor partEmit[i] = part_emitter_create(partSys); //cria o emissor part_emitter_region(partSys, partEmit[i], xi[i], xi[i], yi[i], yi[i],ps_shape_ellipse, ps_distr_linear); // define a regiao do emissor (um ponto so) part_emitter_stream(partSys, partEmit[i], partType[i], 1); // faz o emissor lancar as particulas pra sempre (se eliminada essa linha, ele nao lancara nada) }Ultimas dicas: Bom, obviamente, voce pode renomear as variaveis a vontade, e principalmente retirar esse uso de arrays - dificilmente voce vai precisar de todas as shapes ao mesmo tempo. Brinque com os valores de cor, direcao, gravidade, tamanho (usar escalas diferentes em x e y pode ser interessante), etc.Sabe aqueles comandos que eu nao usei? Eles servem pra criar novas particulas de outro tipo, ou no equivalente ao "step_event" ou no equivalente ao "destroy_event" (Nao TEM que ser de outro tipo, mas imagine o que acontece se uma particula cria outra(s) igualzinha a cada step). Tem situacoes em que e interessante ter particulas criadas no ponto em que tem outra particula. Por exemplo, uma chuva de meteoros em que os meteoros sao particulas e as caudas sao formadas por outras particulas. Ou fogos de artificio, como no codigo que vem com o manual. Ou