首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Slick Graphics API中更改默认字体

在Slick Graphics API中更改默认字体
EN

Stack Overflow用户
提问于 2012-07-16 20:22:24
回答 1查看 7K关注 0票数 0

我试图更改Slick API的默认字体,以简单地绘制我正在编写的游戏的标题,但我似乎无法使其正常工作(它没有绘制任何内容,只是将屏幕留空)。我想使用一种标准的Java字体(Verdana)。

下面是我用来设置字体的代码:

代码语言:javascript
运行
复制
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();
}
}

经过多次尝试,我使用了这个网站底部的代码:

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

我的问题是:如何更改Slick中的默认字体,并将该字体中的文本绘制到我的游戏标题的屏幕上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-16 20:32:06

Slick-Util使用java的内置字体支持来加载fonts.You,可以使用默认的内置java字体或加载外部ttf文件。

字体是通过slick的TrueTypeFont class存储和绘制的。

可以看到这个来自忍者的代码:

代码语言:javascript
运行
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11504233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档