Estoy luchando por dibujar un mapa de bits giratorio alrededor de su centro y hacer la rotación sin cambiar el tamaño del mapa de bits. Estoy dibujando todos mis sprites en la pantalla mediante un hilo de juego, por lo que estoy buscando una solución que incorpore el mapa de bits original y no el lienzo.Android gira el mapa de bits alrededor del centro sin cambiar el tamaño
Gracias de antemano.
Este es mi código hasta ahora, convierte un mapa de bits en su centro, pero lo cambia de tamaño.
i = i + 2;
transform.postRotate(i, Assets.scoresScreen_LevelStar.getWidth()/2, Assets.scoresScreen_LevelStar.getHeight()/2);
Bitmap resizedBitmap = Bitmap.createBitmap(Assets.scoresScreen_LevelStar, 0, 0, Assets.scoresScreen_LevelStar.getWidth(), Assets.scoresScreen_LevelStar.getHeight(), transform, true);
game.getGraphics().getCanvasGameScreen().drawBitmap(resizedBitmap, null, this.levelStar.getHolderPolygons().get(0), null);
Actualización:
me he dado cuenta de que esto no es tan fácil como suena. Mi código de rotación no es el problema. El mapa de bits gira, sin embargo, el dst recto también tendrá que aumentar/disminuir dependiendo del ángulo de rotación, de lo contrario el bimap aparecerá más pequeño, ya que se dibuja en un dst recto fijo. Así que supongo que tendré que desarrollar algún método que me devuelva un dst recto. Así los métodos necesarios para hacer girar un mapa de bits sin cambiar el tamaño aparecían:
public static Bitmap rotateBitmap(Bitmap bitmap, int rotation) // I've got this method working
y
public static Rect rotateRect(Rect currentDst, int rotation) // Don't got this
entiendo esto requerirá un poco de matemática (trig), cualquiera preparado para el reto? : P
¿Qué has intentado hasta ahora? ¿Puedes publicar algunos ejemplos de lo que no funcionó para ti? –
Straight Android o Cocos2d-x? – Fallenreaper
Pregunta actualizada con el código, @Fallenreaper, estoy usando mi propio GE, tan directamente Android. –