Página 1 de 1
Ajuda com troca de sprites
Enviado: Qui Set 20, 2018 4:04 am
por DarlesLSF
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:
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?
Re: Ajuda com troca de sprites
Enviado: Qui Set 20, 2018 8:15 am
por ValdeciVieira
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
Re: Ajuda com troca de sprites
Enviado: Qui Set 20, 2018 9:01 am
por DarlesLSF
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:
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.
Re: Ajuda com troca de sprites
Enviado: Qui Set 20, 2018 11:25 am
por ValdeciVieira
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
}
Re: Ajuda com troca de sprites
Enviado: Qui Set 20, 2018 12:23 pm
por DarlesLSF
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.