[英]How can I put an Image at the center of a screen
我試圖將圖像(playBtn)放在屏幕中央,下面的代碼將結果放在右上角。 請在下面查看我的代碼
public class FlappyBird extends ApplicationAdapter {
Texture img;
public static final int WIDTH = 1440;
public static final int HEIGHT = 2560;
}
上面,我已經設置了寬度和高度,我認為這不是正確的方法。 仍然,這給了我所需的值,但是我似乎無法使用playbth並將其放置在中間
public class MenuState extends State {
private Texture background;
private Texture playBtn;
public MenuState(GameStateManager gsm) {
super(gsm);
background = new Texture("bg.png");
playBtn = new Texture("playbtn.png");
}
@Override
public void render(SpriteBatch sb) {
sb.begin();
sb.draw(background, 0, 0, FlappyBird.WIDTH, FlappyBird.HEIGHT);
//sb.draw(playBtn, (FlappyBird.WIDTH / 2) - (playBtn.getWidth() / 2), FlappyBird.HEIGHT / 2);
sb.draw(playBtn,(FlappyBird.WIDTH/2)-(playBtn.getWidth()),FlappyBird.HEIGHT / 2);
sb.end();
}
}
實際上,所有對象都從其左角之一定位。 因此,雖然圖像本身看起來未對齊,但實際上它是圖像居中的左上角或左下角,這取決於您的編程語言如何與Y軸一起使用。
我將幾個快速圖表放在一起以獲得更好的視覺表示。 對於此示例,Y軸向下增加,因此點(0,0)將是窗口的左上角,而不是左下角。
假設您有一個寬200像素,高100像素的窗口,並且有一個20像素乘20像素的對象要放置在窗口的正中央。 一般的假設是將對象放置在窗口寬度和高度的一半處,但是這樣做將獲得類似於以下結果:
但是,這是一個非常簡單的問題。 只需將對象放置在窗口寬度的一半處,減去X軸對象寬度的一半,然后將窗口高度的一半減去Y軸對象高度的一半即可:
如前所述,某些編程語言在Y軸向上增加和向下減少的地方有所不同。 如果您是這種情況,那么您將不得不考慮對象的左下角而不是對象的左上角,但是我認為方程式應該仍然相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.