tangente seno puntos espacio entre coseno coordenadas con calcular angulos angulo java vector rotation libgdx

java - seno - Ángulo entre dos puntos y cálculo de la rotación



calcular angulos con coordenadas (0)

así que actualmente estoy programando un pequeño juego en Java con libGDX.

Quiero que la textura de los jugadores gire directamente a la posición del mouse. Lamentablemente, mi código no funciona, y no tengo ni idea de por qué no.

Entonces, llamo a este método en el método de Actualización del jugador:

private void CalculateRotation() { rotation = Position.angle(input.getTranslatedMousePos()); }

La Posición es solo un Vector2 con la posición de los jugadores. Obtengo los translatedMousePos así:

public Vector2 getTranslatedMousePos() { Vector3 v = camera.unproject(new Vector3(MousePos.x, MousePos.y, 0)); return new Vector2(v.x, v.y); }

mientras que MousePos está determinado por el siguiente código:

@Override public boolean mouseMoved(int screenX, int screenY) { MousePos = new Vector2(screenX, screenY); return false; }

Dibujé el sprite de los jugadores así:

public void Draw(SpriteBatch spriteBatch) { spriteBatch.draw(new TextureRegion(txt), Position.x, Position.y, (float)(size.x * 0.5), (float)(size.y * 0.5), size.x, size.y, 1.0f, 1.0f, rotation); }

Lamentablemente, el sprite gira, pero de ninguna manera apunta al cursor.

Siguiendo cosas que descubrí aún:

  • spriteBatch.draw (..., rotation) acepta grados y Vector2.angle da el ángulo en grados

  • the translatedMousePos parece estar en lo cierto, me di cuenta que al pasar el mouse por encima del sprite de los jugadores (que está en (1000 | -1000)) y "imprimir" los TranslateMousePos traducidos, era el mismo

¡Gracias por tomarse su tiempo y ayudarme! :)