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.

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

  • AndEngine error de obtención: pTextureAtlasSource suministrado no debe exceder los límites de la textura
  • Y el motor aplican fuerza
  • Muestras en AndEngine
  • Las 5 mejores puntuaciones de google leaderboard
  • Animación de la carga con el embalador de la textura en andengine
  • ¿Cómo aplico una fuerza a un cuerpo en la dirección que está viajando (Box2D)?
  • Problema con la orientación de la pantalla de Android
  • No se puede añadir AndEngine a Android Studio
  • Andengine fade in / out y modificadores alfa no funcionan
  • Cambiar de AndEngine a libgdx - qué saber?
  • Android AndEngine: java.lang.IllegalArgumentException: No se encontró EGLConfig
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.