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] Imagem não permanece a mesma do angulo. Point and Click

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Loganout
Novato
Novato
Reações: 0
Mensagens: 13

[AJUDA] Imagem não permanece a mesma do angulo. Point and Click

Mensagem por Loganout » Dom Jun 05, 2016 12:18 pm

Olá. espero que consiga ajuda =)
Estou tentando fazer movimento com o click do mouse, mas a imagem não permanece a mesma no final do passo.
Na imagem eu clico a uma distancia, o angulo muda corretamente, mas...
Imagem

Quando chega ao final do passo, ela retorna para o angulo inicial
Imagem

Esse é o código que estou usando no momento.
htme_obj_player

Global left pressed event

Código: Selecionar todos

if (!instance_exists(htme_obj_mouseClick)){
    instance_create(mouse_x, mouse_y, htme_obj_mouseClick);
}


Step event

Código: Selecionar todos

if (htme_isLocal()) {
if (instance_exists(htme_obj_mouseClick)){
mouseDistance = point_distance(x, y, htme_obj_mouseClick.x, htme_obj_mouseClick.y);
move_towards_point(htme_obj_mouseClick.x, htme_obj_mouseClick.y, min(5, mouseDistance));
}}
image_angle = direction;


htme_obj_mouseClick

Collision with player event

Código: Selecionar todos

instance_destroy();


Global left pressed event

Código: Selecionar todos

x = mouse_x;
y = mouse_y;
Obrigado!

Avatar do usuário
Superbomber
Programador
Programador
Reações: 0
Mensagens: 283
Localização: Natal-RN

Re: [AJUDA] Imagem não permanece a mesma do angulo. Point and Click

Mensagem por Superbomber » Dom Jun 05, 2016 12:36 pm

O motivo é que você está usando move_towards_point() que altera o direction enquanto se move, mas se não se mover o direction não vai ser alterado.

Use algo como:

Código: Selecionar todos

if (htme_isLocal()) {
if (instance_exists(htme_obj_mouseClick)){
mouseDistance = point_distance(x, y, htme_obj_mouseClick.x, htme_obj_mouseClick.y);
direction     = point_direction(x, y, htme_obj_mouseClick.x, htme_obj_mouseClick.y);
speed         = min(5, mouseDistance);
} else {
  speed = 0;
}
}
image_angle = direction;


Esse código não ta legal, mas enfim...Acho que com o exemplo acima deu pra entender. flw.
Entrem neste link com o JavaScript desabilitado e vejam a mágica: https://tgmbrasil.com.br/?PageSpeed=n0script

Avatar do usuário
Long Legs
Novato
Novato
Reações: 0
Mensagens: 6

Re: [AJUDA] Imagem não permanece a mesma do angulo. Point and Click

Mensagem por Long Legs » Dom Jun 05, 2016 1:46 pm

Conforme nosso amigo acima citou, move_towards altera o direction, e como você está usando "image_angle = direction", ao chegar no "alvo" a direção será 0, consequentemente, o angulo também. Uma simples condição no momento de alterar o angulo já pode resolver:

Código: Selecionar todos

if (distance_to_point(Alvo.x,Alvo.y) > 1){
image_angle = direction;
}

Avatar do usuário
Loganout
Novato
Novato
Reações: 0
Mensagens: 13

Re: [Resolvido] Imagem não permanece a mesma do angulo. Point and Click

Mensagem por Loganout » Dom Jun 05, 2016 5:23 pm

Superbomber escreveu:O motivo é que você está usando move_towards_point() que altera o direction enquanto se move, mas se não se mover o direction não vai ser alterado.

Use algo como:

Código: Selecionar todos

if (htme_isLocal()) {
if (instance_exists(htme_obj_mouseClick)){
mouseDistance = point_distance(x, y, htme_obj_mouseClick.x, htme_obj_mouseClick.y);
direction     = point_direction(x, y, htme_obj_mouseClick.x, htme_obj_mouseClick.y);
speed         = min(5, mouseDistance);
} else {
  speed = 0;
}
}
image_angle = direction;


Esse código não ta legal, mas enfim...Acho que com o exemplo acima deu pra entender. flw.
Deu a mesma coisa =( , mas obrigado por responder.
Long Legs escreveu:Conforme nosso amigo acima citou, move_towards altera o direction, e como você está usando "image_angle = direction", ao chegar no "alvo" a direção será 0, consequentemente, o angulo também. Uma simples condição no momento de alterar o angulo já pode resolver:

Código: Selecionar todos

if (distance_to_point(Alvo.x,Alvo.y) > 1){
image_angle = direction;
}
Deu certo, obrigado !
Agradeço os dois pela boa vontade de responder e me ajudar !

Trancado

Quem está online

Usuários navegando neste fórum: Google [Bot], Semrush [Bot] e 0 visitante