簡體   English   中英

如何將圖像放在屏幕中央

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM