Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Ajuda com troca de sprites

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Ajuda com troca de sprites

Mensagem por DarlesLSF » Qui Set 20, 2018 4:04 am

1º problema:
Eu tô tentando trocar a sprite do player quando ele chega próximo do monstro, pra dar o efeito que está atacando. Pra chega perto no inimigo, eu tô usando move_towards_point e logo em seguida eu coloquei pra mudar a sprite:
Imagem

A primeira sprite é ele preparando a arma para atacar o inimigo. Já a segunda é a sprite em que ele ataca o inimigo. Porém quando vou testar, ele tá iniciando já com a segunda sprite, ele não faz a troca da primeira sprite pra segunda, logo após chegar no inimigo. Alguém sabe como resolver isso?

2º problema:
Quando o char vai em direção ao inimigo, ao chegar onde deveria, ele fica fazendo isso:
Olhem quando ele chega no inimigo
Tentei usar o distance_to_point e redefinir a velocidade pra 0, mas ele continua "patinando" na frente do inimigo. Como resolvo isso?

Avatar do usuário
ValdeciVieira
Moderador
Moderador
Reações: 8
Mensagens: 122
Localização: Rio de Janeiro, Brasil

Re: Ajuda com troca de sprites

Mensagem por ValdeciVieira » Qui Set 20, 2018 8:15 am

Não entendi direito o 1º problema,mas quanto ao 2º acredito que a velocidade que o personagem se move é maior que a distancia do player pro inimigo então ele acaba ultrapassando e nunca "chega" no lugar e move_towards_point se move em direção a alguma coisa usando a speed do GM e nunca para,você é quem precisa definir a speed pra 0.

Tente usar

Código: Selecionar todos

if distance_to_object(inimigo) > (algum valor fixo) {
move_towards_point(obj_inimigo1.x,obj_inimigo1.y,20)
}else{speed = 0}
Não é solução pq provavelmente o player vai acabar dentro do inimigo

Avatar do usuário
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Re: Ajuda com troca de sprites

Mensagem por DarlesLSF » Qui Set 20, 2018 9:01 am

Mega escreveu:Não entendi direito o 1º problema,mas quanto ao 2º acredito que a velocidade que o personagem se move é maior que a distancia do player pro inimigo então ele acaba ultrapassando e nunca "chega" no lugar e move_towards_point se move em direção a alguma coisa usando a speed do GM e nunca para,você é quem precisa definir a speed pra 0.
Sobre o primeiro problema, no código eu troco a sprite do jogador (sprite_index = spr_aff_atacando1), que seria a terceira dessa spritesheet:
Imagem
Como tu pode ver, ele tá se preparando pra atacar. Essa é a sprite que deve permanecer até o jogador encontrar com o monstro. Depois que ele encontra com o monstro, eu coloquei pra trocar de sprite (sprite_index = spr_aff_atacando2), que é a segunda sprite da figura acima, e que é a sprite dele acertando o inimigo. O problema é que ele não faz essa troca de sprites, ele já define a sprite_index = spr_aff_atacando2 desde o começo, mesmo ela estando depois do move_towards_point.

Avatar do usuário
ValdeciVieira
Moderador
Moderador
Reações: 8
Mensagens: 122
Localização: Rio de Janeiro, Brasil

Re: Ajuda com troca de sprites

Mensagem por ValdeciVieira » Qui Set 20, 2018 11:25 am

Acho que entendi,mas esta trocando pro atk2 pq não tem uma pausa no codigo,tipo assim vc define atk1,coloca a velocidade do sprite em algum valor,manda o player na direção do inimigo e coloca atk2 como sprite.

Uma adaptação

Código: Selecionar todos

if distance_to_object(inimigo) > (algum valor fixo) 
{
move_towards_point(obj_inimigo1.x,obj_inimigo1.y,20)
}else{
speed = 0;
sprite_index = spr_aff_atacando2
}

Avatar do usuário
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Re: Ajuda com troca de sprites

Mensagem por DarlesLSF » Qui Set 20, 2018 12:23 pm

Mega escreveu:Acho que entendi,mas esta trocando pro atk2 pq não tem uma pausa no codigo,tipo assim vc define atk1,coloca a velocidade do sprite em algum valor,manda o player na direção do inimigo e coloca atk2 como sprite.

Uma adaptação

Código: Selecionar todos

if distance_to_object(inimigo) > (algum valor fixo) 
{
move_towards_point(obj_inimigo1.x,obj_inimigo1.y,20)
}else{
speed = 0;
sprite_index = spr_aff_atacando2
}
Esse código funcionou, obrigado.
Eu percebi que o GM executa muito rápidos os comandos, tanto que alguns códigos que eu fiz, eu tive que colocar alarms de 0.2 segs pra eles funcionarem como eu queria.

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante