Página 1 de 1

Problema com a animação de correr

Enviado: Dom Mar 13, 2022 1:37 pm
por Luxazx
Olá estou tendo um problema com a animação do meu personagem, tenho uma animação dele correndo quando seguro o shift, até ai tudo funciona a velocidade dele aumenta e a animação é troca para a dele correndo. Porem quando eu só seguro o shift a animação dele correndo é ativada ele fica parado, quando eu solto volta para animação dele parado. Por favor me ajudem. Aqui o código

Create
Speed=5

Step

var sima = keyboard_check(ord("W"))
var baixo = keyboard_check(ord("S"))
var esquerda = keyboard_check(ord("A"))
var direita = keyboard_check(ord("D"))
var parado = keyboard_check(vk_nokey)
//Andar
if (sima)
{
y-= Speed
sprite_index=andando
}
if (baixo)
{
y+=Speed
sprite_index=andando
}
if (esquerda)
{
x-=Speed
sprite_index=andando
image_xscale=-1
}
if (direita)
{
x+=Speed
sprite_index=andando
image_xscale=1
}
//Correr
if( keyboard_check(vk_lshift))
{
Speed = 10;
sprite_index=Correr
}
else
{
Speed = 5;
sprite_index=andando
}
if (parado)
{
sprite_index=Sprite1
}

Re: Problema com a animação de correr

Enviado: Sex Mar 18, 2022 12:48 pm
por ValdeciVieira
É simples, você está usando sprite_index para definir a sprite "Correndo" apenas por pressionar shift, você precisa verificar se está se movimentando antes de definir a sprite.

Re: Problema com a animação de correr

Enviado: Ter Mar 22, 2022 9:43 pm
por Luxazx
Oi cara eu estava tentando fazer isso porém eu não estou conseguindo . Você pode me dá uma ideia?

Re: Problema com a animação de correr  Tópico resolvido

Enviado: Qui Mar 24, 2022 11:05 am
por ValdeciVieira
Eu faria uma state machine, mas realmente não consigo pensar em muitas maneiras de resolver o problema com esse código, talvez assim...

Código: Selecionar todos

var cima = keyboard_check(ord("W"));
var baixo = keyboard_check(ord("S"));
var esquerda = keyboard_check(ord("A"));
var direita = keyboard_check(ord("D"));
var parado = (!cima and !baixo and !esquerda and !direita);
//Mover-se
if !parado {
	if (cima) {
		y-= Speed;
	}
	if (baixo) {
		y+=Speed;
	}
	if (esquerda) {
		x-=Speed;
		image_xscale=-1;
	}
	if (direita) {
		x+=Speed;
		image_xscale=1;
	}
	if !keyboard_check(vk_lshift) {
		Speed = 5;
		sprite_index=andando;
	} else {
		Speed = 10;
		sprite_index=Correr;
	}
} else {
	sprite_index=Sprite1;
}

Re: Problema com a animação de correr

Enviado: Sex Mar 25, 2022 9:26 pm
por Luxazx
Cara funcionou obrigado!