Página 1 de 1

Troca de sprites

Enviado: Dom Out 03, 2021 12:18 pm
por Ich1
Estou tentando aprender a usar o Game Maker 2 e estou com um problema pra trocar o sprite, quando eu fico no alcance do inimigo, ele troca o script idle pra chase, o problema é que o sprite continua parado e não muda pra animação dele correndo, alguém sabe o que pode estar dando erro?

o Código

if (hspd) != 0 image_xscale = sign(hspd); //TROCA O LADO DO SPRITE


if distance_to_object(obj_player) <distance
{
state = EnemyState.CHASE
image_index = spr_enemyrun;
}

Re: Re: Troca de sprites

Enviado: Dom Out 03, 2021 1:19 pm
por Christian
Já tentou usar um switch no evento draw?
Acho que resolveria teu problema

Re: Re: Troca de sprites

Enviado: Dom Out 03, 2021 1:29 pm
por Ich1
Christian escreveu:Já tentou usar um switch no evento draw?
Acho que resolveria teu problema
Nunca, sou bem iniciante, não sei quase nada, pode me mostrar como eu faria isso?

Re: Re: Troca de sprites

Enviado: Dom Out 03, 2021 2:41 pm
por Christian
Claro que posso mostrar.
É bem simples mesmo, olha só
No evento draw coloque o seguinte:

Código: Selecionar todos

// aqui vai mostrar a sprite certa para cada state
switch state {
case EnemyState.IDLE:
sprite_index = spr_enemyidle;
break;

case EnemyState.CHASE:
sprite_index = spr_enemyrun;
break;
}

//aqui desenha o teu inimigo
draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha)
Uma coisa que notei é que tu está usando "image_index" para mostrar a sprite, sempre que quiser mostrar uma sprite tem que usar o "sprite_index"

O image_index serve para indicar o frame da sprite.

Lá no teu código onde checa a troca de sprite tem que apagar somente o "image_index = spr_enemyrun"

Faça o teste. Qualquer coisa vou estar por aqui.