我一直试图用ninjacave的教程和很多其他人来展示文字,但我无法让它发挥作用。 有人可以给我一个有用的教程链接吗? 感谢。
代码如下:
主类:
package oregon.client;
import oregon.src.*;
import org.lwjgl.*;
import org.lwjgl.opengl.*;
import static org.lwjgl.opengl.GL11.*;
public class Oregon {
public static Settings settings = new Settings();
public GameController controls = new GameController();
public FPSCounter fps = new FPSCounter();
public void init() {
try {
if (settings.fullscreen) {
Display.setDisplayModeAndFullscreen(Display
.getDesktopDisplayMode());
} else if (!settings.fullscreen) {
Display.setDisplayModeAndFullscreen(new DisplayMode(
settings.defaultWidth, settings.defaultHeight));
}
Display.setVSyncEnabled(true);
Display.create();
} catch (LWJGLException e) {
stop(e);
}
initOpenGL();
start();
}
public void initOpenGL() {
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, settings.defaultWidth, settings.defaultHeight, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
}
public void debug() {
}
public void openGL() {
}
public void start() {
while (!Display.isCloseRequested()) {
controls.keyboard();
fps.tick();
debug();
openGL();
Display.update();
Display.sync(100);
}
Display.destroy();
}
public static void stop() {
System.exit(0);
Display.destroy();
}
public static void stop(Exception e) {
e.printStackTrace();
System.exit(0);
Display.destroy();
}
public static void setFullscreen() {
try {
Display.setDisplayModeAndFullscreen(Display.getDesktopDisplayMode());
} catch (LWJGLException e) {
stop(e);
}
}
public static void removeFullscreen() {
try {
Display.setDisplayModeAndFullscreen(new DisplayMode(
settings.defaultWidth, settings.defaultHeight));
} catch (LWJGLException e) {
stop(e);
}
}
public static void main(String args[]) {
Oregon oregon = new Oregon();
oregon.init();
}
}
这是主要类的代码。
编辑: - 这是我用Jesse B的代码得到的图片。
答案 0 :(得分:3)
DavidB在他的回答中使用graphics
实例提到了drawString()
。这将使用您当前的字体。这意味着您应该先调用graphics.setFont()
,否则它将使用默认的系统字体。这也使得很难记住(在游戏的各种方法中)哪种是“当前”字体。
或者,您可以初始化字体实例并将其直接用于drawString
。来自Slick2D Wiki ...
// initialise the font
Font font = new Font("Verdana", Font.BOLD, 20);
TrueTypeFont trueTypeFont = new TrueTypeFont(font, true);
// render some text to the screen
trueTypeFont.drawString(20.0f, 20.0f, "Slick displaying True Type Fonts", Color.green);
这要求所有支持的平台都可以解析字体名称。更好的选择是将字体放在JAR中,方法是将其放在资源目录中。
修改强>
看到你发布的图片后,我的猜测是你没有正确加载字体。试试这个......
graphics.drawString("Test drawing string.",20.0f,20.0f);
如果这样可行,则确认字体无法正常工作。如果要使用自定义字体,则必须将字体文件添加到JAR中并将其作为资源引用。
答案 1 :(得分:3)
下载Slick2D库并导入jar。
在课堂上覆盖全班的范围:
Font font;
TrueTypeFont ttf;
您的初始化方法
public void init(GameContainer gc){
font = new Font("Verdana", Font.BOLD, 20);
ttf = new TrueTypeFont(font, true);
}
你的渲染方法:
public void render(GameContainer gc, Graphics g){
//render code here
ttf.drawString("Hello, World!")
}
答案 2 :(得分:2)
According to this tutorial,您可以使用drawString
方法从图形对象中调用render
。
g.drawString("Hello World!",200,200);