Вы можете использовать Sprite.setCenter(x,y)
Устанавливает положение так, чтобы спрайт центрировался (x, y)
Нет Sprite.getCenterX()
или Sprite.getCenterY()
tho. Если вам это нужно, вы можете создать класс, который расширяет Sprite
и реализовать его самостоятельно ...
public class MySprite extends Sprite {
public MySprite(Texture texture) {
super(texture);
}
public float getCenterX(){
return getX()+getWidth()/2;
}
public float getCenterY(){
return getY()+getHeight()/2;
}
}
А теперь используйте MySprite
.
Вы также можете переопределить все позиции связанные методы
public class MySprite extends Sprite {
public MySprite(Texture texture) {
super(texture);
}
@Override
public void setX(float x) {
super.setX(x-getWidth()/2);
}
@Override
public void setY(float y) {
super.setY(y-getHeight()/2);
}
@Override
public void setPosition(float x, float y) {
super.setPosition(x-getWidth()/2, y-getHeight()/2);
}
@Override
public float getX() {
return super.getX()+getWidth()/2;
}
@Override
public float getY() {
return super.getY()+getHeight()/2;
}
}