嗨我正在构建游戏复制品2048游戏可以正常工作,但我无法将数字保存在瓷砖中间。基本上一切都是为了数字小于32但数量越多,他们就越向左下方移动。
首先是我使用的输入而不是类。而g是代表图块的Graphics2D元素。
int getX= WIDTH/2- Text.textWidth(""+value, font, g)/2;
int getY= HEIGHT/2+ Text.textHeight(""+value, font, g)/2;
g.drawString(""+value, getX, getY);
public class Text {
private Text(){
}
public static int textHeight(String out, Font font, Graphics2D g){
g.setFont(font);
Rectangle2D bounds=g.getFontMetrics().getStringBounds(out, g);
return (int)bounds.getWidth();
}
public static int textWidth(String out,Font font, Graphics2D g){
g.setFont(font);
if(out.length()==0)
return 0;
TextLayout tl=new TextLayout(out,font,g.getFontRenderContext());
return (int)tl.getBounds().getHeight();
}
}
答案 0 :(得分:1)
textHeight()方法返回字符串边界的 width ,textWidth()方法返回字符串边界的 height 。这不是错误的方式吗?