Imagen giratoria en Andengine

Supongamos que hay insectos que entran en la pantalla desde fuera. Para ello, necesitamos tener 4 coordenadas (StartX, StartY, TargetX, TargetY). Cómo rotar los bugs en la dirección adecuada? He estado jugando con esto durante horas y no he podido averiguar esta parte. Así que el error entra en la pantalla, pero no está mirando hacia la dirección correcta. (Las cuatro coordenadas son números aleatorios).

Estoy contando el gradiente de la línea como aprendí en la escuela:

int deltaY = TargetY - StartY; int deltaX = TargetX - StartX; float gradient = (float)deltaY / (float)deltaX; 

A continuación, el ángulo para rotar el error:

 float angle = (float) (Math.atan(gradient) * 180 / PI); 

Entonces aquí está el modificador de rotación y movimiento:

 registerEntityModifier(new RotationModifier(0.3f, 0, angle) { @Override protected void onModifierFinished(IEntity pItem) { super.onModifierFinished(pItem); registerEntityModifier(new MoveModifier(0.8f, StartX, TargetX, StartY, TargetY) { @Override protected void onModifierFinished(IEntity pItem) { super.onModifierFinished(pItem); } }); } }); 

La solución es más compleja ya que en una línea de cierto gradiente el error puede venir de dos direcciones para que pueda enfrentarse a dos direcciones. Sé que un gradiente de 1/2 significa 26.56 grados y en el sistema de coordenadas AndEngine significa -26.56 o -206.56 grados dependiendo de qué lado viene el error.

2 Solutions collect form web for “Imagen giratoria en Andengine”

Intente algo como esto:

 float bugAngle = 180 + (float) Math.toDegrees(Math.atan2((targetY - bugSprite.getRotationCenterY() - startY), (targetX - bugSprite.getRotationCenterX() - startX))); bugSprite.setRotation(bugAngle); 

Por favor, disculpen la Línea Larga de la Muerte.

Intente con un más simple:

 float angle = getAngle(StartX, TargetX , StartY, TargetY ); YourSprite.setRotation((int) angle); 

Brokap: D

  • Dibuja una ruta en AndEngine para mover una imagen o un sprite
  • ANDROID - Cómo utilizar un video como fondo en Andengine
  • ¿Cómo pausar y reanudar el juego andengine?
  • No se encontró EGLConfig en el emulador, la emulación gpu es verdadera
  • Las 5 mejores puntuaciones de google leaderboard
  • Servicios de Google Play no disponibles debido al error 2
  • Cómo cargar spritesheet de la tarjeta SD en AndEngine
  • Guardar el estado del juego después de pausa. Y el motor
  • AndEngine: colisión de dos sprites
  • Andengine: Añade una vista que contiene los controles de interfaz de usuario en la parte superior de andengine usando addContentView
  • Andengine texto indexoutofbounds excepción
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.