0

感谢您查看我的问题。

我正在为我正在制作的游戏制作一个菜单,我想将游戏的标题放在主菜单的中心。我在 Stack Overflow 上查看了几个问题,但找不到答案。

问题

我遇到的问题是,每当我调用我的centerString()方法时,它都会将它放在 y 轴的中心,而不是 x 轴的中心。我在这里做错了什么?

代码

方法代码

private void centerString(String txt, int width, int height, Graphics g, Font font) {
        FontMetrics metrics = g.getFontMetrics();
        int x = (width - metrics.stringWidth(txt)) / 2;
        int y = (metrics.getAscent() + (height - (metrics.getAscent() + metrics.getDescent())) / 2);
        g.setFont(font);
        g.drawString(txt, x, y);
}

哪里叫

final Font fnt = new Font("Arial", Font.BOLD, 36);
centerString("ThatMarioEngine", toInt(screenSize.getWidth()), toInt(screenSize.getHeight()), g, fnt);
4

1 回答 1

0

我通过使用窗口大小而不是屏幕大小解决了这个问题。在我得到 FontMetricsg.setFont(font); 之前,通过放置来解决居中问题。

于 2018-02-11T11:10:58.350 回答