Página 1 de 1

Movimento com o mouse RPG

Enviado: Qua Jun 22, 2016 3:13 pm
por Bio
Como faço para o movimento ser pelo clique do teclado ?
O personagem ir até o clique, mudando os sprites(direita, esquerda, frente, traz).
Movimento de RPG.
Por favor me ajudem.

Re: Movimento com o mouse RPG

Enviado: Qua Jun 22, 2016 3:32 pm
por Rodrigo Santiago
Bio. Se você não entender o código ,seria bom ver nossos tutoriais do forum antigo, mas ainda , util ( Tutoriais - Lista )

No create :

Código: Selecionar todos

alvo_x = -1;
alvo_y = -1;
dir = 0;
mover = false;
No Mouse -> Global -> Left Pressed

Código: Selecionar todos

//Colocar a posicao do mouse como alvo
alvo_x = mouse_x;
alvo_y = mouse_y;
mover = true;
No Step

Código: Selecionar todos

if(x == alvo_x && y = alvo_y) {
  mover = false;
}

//Mover-se em direcao a posicao alvo
if(mover){
  dir = point_direction(x,y,alvo_x,alvo_y) ; // verifica a direcao , entre este e o alvo
  move_towards_point( alvo_x, alvo_y, 1.5 ); // esse ultimo valor e a velocidade
}

//Mudar a sprite 
if(mover){
  if(dir < 45 || dir >= 315 ) sprite_index = sprite_andando_direita;
  if(dir >= 45 && dir < 135 ) sprite_index = sprite_andando_cima;
  if(dir >= 135 && dir < 225 ) sprite_index = sprite_andando_esquerda;
  if(dir >= 225 && dir < 315 ) sprite_index = sprite_andando_baixo;
}else{
  if(dir < 45 || dir >= 315 ) sprite_index = sprite_olhando_direita;
  if(dir >= 45 && dir < 135 ) sprite_index = sprite_olhando_cima;
  if(dir >= 135 && dir < 225 ) sprite_index = sprite_olhando_esquerda;
  if(dir >= 225 && dir < 315 ) sprite_index = sprite_olhando_baixo;
}

Re: Movimento com o mouse RPG

Enviado: Qui Jun 23, 2016 10:20 am
por Bio
Completamente bugado o código
O objeto se move em direção ao mouse, mas as mudanças de sprites tão completamente bugadas
Ele fica mudando de sprite loucamente
Não volta para a posição "parado" quando para de andar

Re: Movimento com o mouse RPG

Enviado: Qui Jun 23, 2016 10:45 am
por Rodrigo Santiago
Foi so um pequeno erro q me esqueci :

Nessa parte do step :

Código: Selecionar todos

if(x == alvo_x && y = alvo_y) {
  mover = false;
}
Mude para o seguinte

Código: Selecionar todos

//Mover-se em direcao a posicao alvo
if ( point_distance(x,y,alvo_x,alvo_y ) <= 1.5 ){ // note que eu usei o mesmo numero da velocidade aqui
  mover = false;
  speed = 0;
}
Pronto, agora ele não vai mais ficar tremendo :rsrs:

Movimento RPG pelo mouse

Enviado: Seg Jul 04, 2016 10:18 am
por Bio
O sprite continua se movendo, mesmo depois de parado.
Por favor ajudem, já criei esse tópico várias vezes e todos os códigos contém erros que não consigo solucionar.