3

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 のコードで取得した画像です。 ここに画像の説明を入力

4

3 に答える 3

3

Slick2Dライブラリをダウンロードし、jarをインポートします。

クラス全体の範囲をカバーするためのクラス内:

Font font;
TrueTypeFont ttf;

あなたのinitメソッド

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!")

}
于 2012-09-02T00:40:41.473 に答える
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 に埋め込むことです。

EDIT
投稿した写真を見た後、フォントが正しく読み込まれていないと思います。代わりにこれを試してください...

graphics.drawString("Test drawing string.",20.0f,20.0f);

これが機能する場合、フォントが機能していないことが確認されます。カスタム フォントを使用する場合は、フォント ファイルを JAR に追加し、それをリソースとして参照する必要があります。

于 2012-06-21T19:13:48.817 に答える
2

このチュートリアルによるとdrawString、メソッド内のグラフィックスオブジェクトから呼び出すことができますrender

g.drawString("Hello World!",200,200);

于 2012-06-21T19:02:29.870 に答える