繁体   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