Página 1 de 1

Tempo do Sprite(Plataforma)

Enviado: Sex Set 23, 2022 8:16 pm
por KaykeBr
Olá, estou tendo um problema com o meu Sprite de Tiro, o meu Sprite tem poucos quadros(apenas 1), não sei se esse é o problema. Mas quando eu atiro da pra ver a troca de sprite por poucos frames, eu queria poder "prolongar" por sla, alguns frames a mais(1 seg seria ótimo), porém, eu não sei como eu poderia fazer isso.

Código: Selecionar todos

STEP
#region TrocaSprite
if place_meeting(x,y+1,Obj_Block){
if hspd > 0{
	state = "move";
	sprite_index = sprt_PlayerWalkD
	image_xscale = 1;
}else if hspd < 0{
	state = "move";
	sprite_index = sprt_PlayerWalkD
	image_xscale = -1;
}else if global.key_shoot{
	state = "tiro";
	sprite_index = sprt_Tiro
}else{
	state = "idle";
	sprite_index = sprt_Player	
}
}
show_debug_message(state)

#endregion

Re: Tempo do Sprite(Plataforma)  Tópico resolvido

Enviado: Sáb Set 24, 2022 5:44 pm
por All-x
Sempre que trocar a sprite com sprite_index, reinicinie o frame atual (image_index), e selecione a velocidade da animação (image_speed), verificando antes se a sprite já não é a atual.

Ex:

Código: Selecionar todos

// Se a sprite não é a 'spr_atirando'
if (sprite_index != spr_atirando) {
	// Troca de sprite
	sprite_index = spr_atirando;

	// Reinicia frame atual para o 1º Frame
	image_index = 0;
	
	// Define a velocidade de animação
	image_speed = 0.05;
}
Se a imagem tem apenas 1 frame, então vai levar cerca de 0,66 segundos para percorrer 1 frame todo (Em uma room de 30 FPS). Ou seja para o image_index sair de 0 até 1, sendo incrementado pelo image_speed. Assim se diminui o image_speed para durar mais tempo.

Basta adaptar no teu código.

Re: Tempo do Sprite(Plataforma)

Enviado: Dom Set 25, 2022 2:51 pm
por KaykeBr
Refiz o codigo novamente e ja melhorou muito :)