Java 在Slick Graphics API中更改默认字体
我正在尝试更改Slick Graphics API的默认字体,以便只绘制我正在编写的游戏的标题,但我似乎无法使其工作(它没有绘制任何内容,只是将屏幕留空)。我想使用一种标准Java字体(Verdana) 下面是我用来设置字体的代码:Java 在Slick Graphics API中更改默认字体,java,fonts,font-size,slick2d,Java,Fonts,Font Size,Slick2d,我正在尝试更改Slick Graphics API的默认字体,以便只绘制我正在编写的游戏的标题,但我似乎无法使其工作(它没有绘制任何内容,只是将屏幕留空)。我想使用一种标准Java字体(Verdana) 下面是我用来设置字体的代码: import java.awt.Font; import org.newdawn.slick.AppGameContainer; import org.newdawn.slick.BasicGame; import org.newdawn.slick.Color;
import java.awt.Font;
import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.BasicGame;
import org.newdawn.slick.Color;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.UnicodeFont;
public class Controller extends BasicGame {
UnicodeFont uFont;
@Override
public void render(GameContainer container, Graphics g) throws SlickException {
g.setFont(uFont);
g.setColor(Color.white);
g.drawString("Hello World!", 50, 50);
}
@Override
public void init(GameContainer container) throws SlickException {
//Set font
Font font = new Font("Serif", Font.PLAIN, 20);
uFont = new UnicodeFont(font, font.getSize(), font.isBold(), font.isItalic());
}
/**
* @param args
* @throws SlickException
*/
public static void main(String[] args) throws SlickException {
//Set up application
Controller c = new Controller("Tetris");
AppGameContainer app = new AppGameContainer(c);
app.setDisplayMode(500, 800, false);
//Start application
app.start();
}
}
在我自己多次尝试之后,我正在使用本网站底部的代码:
我的问题是:如何更改Slick中的默认字体,并将该字体中的文本绘制到游戏标题的屏幕上。
Slick Util
使用Java内置字体支持加载字体。您可以使用默认内置Java字体或加载外部ttf文件
字体通过slick的TrueTypeFont类存储和绘制
从ninjacave查看此代码:
TrueTypeFont font;
TrueTypeFont font2;
public void init() {
// load a default java font
Font awtFont = new Font("Times New Roman", Font.BOLD, 24);
font = new TrueTypeFont(awtFont, false);
// load font from a .ttf file
try {
InputStream inputStream = ResourceLoader.getResourceAsStream("myfont.ttf");
Font awtFont2 = Font.createFont(Font.TRUETYPE_FONT, inputStream);
awtFont2 = awtFont2.deriveFont(24f); // set font size
font2 = new TrueTypeFont(awtFont2, false);
} catch (Exception e) {
e.printStackTrace();
}
}
有关更多详细信息,请查看这些网站:
非常感谢!它运行良好,但我收到了折旧警告。有没有办法避免这些?如果你在eclipse中编码,把鼠标指针放在不推荐使用的方法上,你会看到新的替代方法…你也可以查看Java文档以了解更多细节。它说替代方法是unicent
,这就是我为什么要使用它的原因,但是哦。。。当删除TrueTypeFont
时,我会担心这个问题:P