У меня есть простой образ в моей Java-игре на Slick2d, и я пытаюсь повернуть его на 90 градусов. Однако при использовании метода «Image.rotate (angle)» изображение заканчивается движением, а также вращением. Я попытался силой установить центр вращения, чтобы быть точным центром изображения, но результаты одинаковы. Вот до и после выстрелов. Идея состоит в том, что танк будет вращаться на 90 градусов и останется на той же площади. Центр вращения, который был принудительно набор показан точкой после поворота:My Slick2d Изображение не вращается, как ожидалось
До:
После:
Код:
public void turn(String direction){
if(direction.equals("right")){
if(movableEntityImage.getRotation() != 90){
System.out.println("Pre rotate x = " + x + " . Pre rotate y = " + y + ". width = " + width + ". height = " + height);
System.out.println("Pre rotate rotation = " + movableEntityImage.getRotation());
float rotX = (x + (width/2));
float rotY = (y + (height/2));
movableEntityImage.setCenterOfRotation(rotX, rotY);
System.out.println("center of rotation X = " + movableEntityImage.getCenterOfRotationX() + ".center of rotation y = "+ movableEntityImage.getCenterOfRotationY());
movableEntityImage.rotate(90);
System.out.println("Post rotate x = " + x + " . Post rotate y = " + y);
System.out.println("Post rotate rotation = " + movableEntityImage.getRotation());
}
}
И, наконец, консольный выход:
The tank has been created with an x of: 50.0 and a y of: 50.0
Pre rotate x = 50.0 Pre rotate y = 50.0 width = 25.0 height = 25.0
Pre rotate rotation = 0.0
Center of rotation X = 62.5 Center of rotation y = 62.5
Post rotate rotation = 90.0
Я что-то упустил? Или я об этом поступил неправильно.
Спасибо, Джош