0

Slick Graphics APIのデフォルトのフォントを変更して、書いているゲームのタイトルを単純に描画しようとしていますが、機能しないようです(何も描画されず、画面を空白のままにします) )。標準のJavaフォントの1つ(Verdana)を使用したいと思います。

フォントを設定するために使用しているコードは次のとおりです。

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();
}
}

何度も試みた後、私はこのWebサイトの下部にあるコードを使用しています。

http://slick.javaunlimited.net/viewtopic.php?t=3508

私の質問は、Slickのデフォルトのフォントを変更し、そのフォントのテキストをゲームのタイトルの画面に描画するにはどうすればよいかということです。

4

1 に答える 1

1

Slick-UtilJavaの組み込みフォントサポートを使用してフォントをロードします。デフォルトの組み込みJavaフォントを使用するか、外部ttfファイルをロードできます。

フォントはslick'sを介して保存および描画されTrueTypeFont classます。

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();
    }   
}

詳細については、次のサイトをご覧ください。

http://ninjacave.com/slickutil1

于 2012-07-16T12:32:05.507 に答える