Página 1 de 1

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

Enviado: Dom Jun 05, 2016 12:18 pm
por Loganout
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!

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

Enviado: Dom Jun 05, 2016 12:36 pm
por Superbomber
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.

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

Enviado: Dom Jun 05, 2016 1:46 pm
por Long Legs
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;
}

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

Enviado: Dom Jun 05, 2016 5:23 pm
por Loganout
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 !