Página 1 de 1

Como fazer efeito de folha caindo

Enviado: Sex Jun 24, 2022 4:24 pm
por fehantaro
Oi pessoal!
Alguém poderia me ajudar a fazer esse efeito de folha caindo no Game Maker?
LINK DO JOGO QUE CONTEM ESSE EFEITO >>

Re: Como fazer efeito de folha caindo  Tópico resolvido

Enviado: Sex Jun 24, 2022 8:50 pm
por All-x
Tu pode criar um objeto gerador_de_folhas ou usar um outro controle que já tenha. No Create coloque:

Código: Selecionar todos

// Intervalo de 1 segundo
intervalo = 1; 

// Aciona alarme
alarm[0] = intervalo * room_speed;
No evento Alarm 0 do gerador_de_folhas:

Código: Selecionar todos

// Gera folhas fora da câmera do lado direito (considerando a view da câmera)
var xx = camera_get_view_x(view_camera[0]) + camera_get_view_width(view_camera[0]) + 100;
var yy = camera_get_view_y(view_camera[0]) + irandom(camera_get_view_height(view_camera[0]));
instance_create_depth(xx, yy, 0, folha);

// Adiciona alarme novamente
alarm[0] = intervalo * room_speed;
No Create da folha 🍃:

Código: Selecionar todos

// Física da folha
rotacao = random_range(-0.15, 0.15);
hspeed = -random_range(1, 4);
direction = 180 + random_range(-15, 15);
gravity = 0.001;
No Step da folha 🍃:

Código: Selecionar todos

// Rotação
image_angle += rotacao;

// Se sair da camera pela esquerda a folha é destruída
if x < camera_get_view_x(view_camera[0]) - 100 {
	instance_destroy();
}
Coloque o gerador_de_folhas na room e teste. De resto é só você mesmo ajustar a gosto, não tem nenhum grande mistério. Lembrando que o código considera que você tem uma câmera ativada.

Re: Como fazer efeito de folha caindo

Enviado: Sex Jun 24, 2022 8:53 pm
por fehantaro
Oi galera boa noite de novo! Eu acabei aprendendo vendo de um vídeo como fazer o efeito de folhas caindo como partículas e é relativamente simples!
Dou aqui todos os créditos ao canal 1up indie o cara é sensacional quem quiser ver o vídeo depois dele lá...

Bom mas basicamente é necessário apenas um objeto:

Código: Selecionar todos

//Em um create
//Define em quanto tempo ele criará uma folha
loopTime_Min = 30;
loopTime_Max = 100;
alarm[0] = loopTime_Min;

range = 20;
amount_Min = 0;
amount_Max = 4;

//Definindo as cores das folhas
color_1 = make_color_rgb(24,64,42);
color_2 = make_color_rgb(25,123,48);
color_3 = make_color_rgb(20,104,40);


particle_System = part_system_create_layer("Instances", 0);
particle_leaf = part_type_create();
part_type_sprite(particle_leaf, spt_leaf, 0, 1, 1);
//Define para onde a folha está caindo e sua velocidade
part_type_gravity(particle_leaf, 0.02, 220);
part_type_direction(particle_leaf,270,270, 0.01, 5);
part_type_speed(particle_leaf, 0.5,0.8, 0,0);

part_type_size(particle_leaf, 0.1,1,0,0);
//Aqui está definindo quanto tempo as folhas podem durar até sumirem na sua cena
part_type_life(particle_leaf, 60,300);

Código: Selecionar todos

//Em um Alarm0

var amount = random_range(amount_Min, amount_Max);

repeat(amount){

var randomX = x + random_range(0, range);
var randomY = y + random_range(0, range);

var randomColor = choose(color_1, color_2, color_3);
part_type_color1(particle_leaf,randomColor);
part_particles_create(particle_System, randomX, randomY, particle_leaf, 1);

}
var loopTime = irandom_range(loopTime_Min, loopTime_Max);
alarm_set(0, loopTime);
=========================================
Espero ter ajudado alguém com a minha dúvida kkkkk
O vídeo dele para quem entende inglês é esse, ele explica melhor do que eu.

https://www.youtube.com/watch?v=BbfQr0hEiyE&t=1233s