问题是字体不断加载,我想知道是否有更好的工作....
我正在制作一个简单的java游戏,我有这个代码,以便将所有对象绘制到框架中:
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
Font font = null;
try {
font = Font.createFont(Font.TRUETYPE_FONT, new FileInputStream(new File("Font/Blocks.ttf"))).deriveFont(Font.PLAIN, 24);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (FontFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
g2d.setFont(font);
//Drawing Strings
g2d.setColor(Color.MAGENTA);
g2d.drawString("Y CORD:" + PlayerDefine.getY(), 5, 445);
g2d.drawString("X CORD:" + PlayerDefine.getX(), 5, 460);
现在我正在加载字体,这就是我想要的,但我看到每次帧刷新时(我将主Timer设置为10ms)它一遍又一遍地加载字体。我想知道是否有办法避免这种情况,即在游戏开始时使字体加载并继续使用它直到窗口关闭。感谢任何能够回应此问题的人!
答案 0 :(得分:2)
不要尝试在paint方法中加载字体,在初始化类时执行 - 每次对象需要自己渲染时都会调用paint()