libGDX游戏开发之字体样式(七)
libGDX游戏开发之字体样式(七)
libGDX系列
,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm…国内用libgdx比较少,多数情况需要去官网和google找资料,相互学习的可以加我联系方式。
libgdx默认的字体样式只支持英文字母和数字和一些符号,若想显示在渲染中使用中文字母可以根据官网教程使用hiero制作。
hiero下载地址:https://alywp.net/5DmQ6r(2021年10月11日最新版,我从外网下载的)
依赖
// 桌面应用
api "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"// 核心
api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
一、制作字体
运行起来也是比较简单:
java -jar runnable-hiero-2021-10-11.jar
导出保存
将myfont.fnt
、myfont.png
放到资源文件中,使用代码如下:
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.utils.ScreenUtils;public class MyGdxGame extends ApplicationAdapter {SpriteBatch batch;Stage stage;@Overridepublic void create() {stage = new Stage();batch = new SpriteBatch();// BitmapFont bitmapFont = new BitmapFont(Gdx.files.internal("myfont.fnt"),// Gdx.files.internal("myfont.png"), false);BitmapFont bitmapFont = new BitmapFont(Gdx.files.internal("myfont.fnt"));Label.LabelStyle font = new Label.LabelStyle(bitmapFont, Color.WHITE);Label label = new Label("凌康123水电费了看", font);label.setPosition(20, 200);stage.addActor(label);}@Overridepublic void render() {ScreenUtils.clear(1, 0, 0, 1);stage.draw();}@Overridepublic void dispose() {batch.dispose();}
}
效果,不难发现,字体中未包含了是不会显示出来的,可以参考这篇文章获取GB2312的所有中文:https://blog.csdn.net/weixin_44480167/article/details/120605651
二、使用window自带字体
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.local("C:\\Windows\\Fonts\\simsun.ttc"));// 宋体FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();parameter.size = 32;parameter.characters = "凌康123水电费了看奥斯陆家发生";BitmapFont bitmapFont = generator.generateFont(parameter);Label.LabelStyle font = new Label.LabelStyle(bitmapFont, Color.WHITE);Label label = new Label("凌康123水电费了看-characters没有的内容是不会显示的", font);label.setPosition(20, 200);stage.addActor(label);// 注意内存溢出generator.dispose();
效果,不能发现,生成参数的字符串内没有的内容是不能显示的:
window自带的字体库丰富!但是也有缺点,每次都生成要注意内存溢出,适合固定字体的场景。
打赏
创作不易,觉得内容不错就赏作者一杯咖啡吧!(恰饭)
后续我会出更多libgdx文章:寻路、寻路算法、打怪,以RPG的视角。
libGDX游戏开发之字体样式(七)相关推荐
- libGDX游戏开发之打包游戏(十二)
libGDX游戏开发之打包游戏(十二) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和goog ...
- libGDX游戏开发之修改游戏帧数FPS(十三)
libGDX游戏开发之修改游戏帧数FPS(十三) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网 ...
- [libGDX游戏开发教程]使用LibGDX进行游戏开发(1)-游戏设计
声明:本章是一个系列的开始,英文原文是<Learning libGDX Game Development>,大家请周知. [libgdx游戏开发教程]使用Libgdx进行游戏开发(2)-游 ...
- [libGDX游戏开发教程]使用libGDX进行游戏开发(12)-Action动画
前文章节列表: 使用libGDX进行游戏开发(11)-高级编程技巧 使用libGDX进行游戏开发(10)-音乐音效不求人,程序员也可以DIY 使用libGDX进行游戏开发(9)-场景过渡 使用li ...
- 微信小程序开发基础 字体样式和文本样式的设置
微信小程序页面主要有4个页面,分别是: js页面.json页面,wxml页面.wxss页面 他们的功能分别是: js:页面逻辑文件 json:页面配置文件 wxml:页面描述文件 wxss:页面样式表 ...
- 大家快来玩转盘抽奖游戏(走在网页游戏开发的路上(七))
本文转自吴秦博客园博客,原文链接:http://www.cnblogs.com/skynet/archive/2011/06/15/2081106.html,如需转载请自行联系原作者 0. 前言 每逢 ...
- 【微信小程序开发】字体样式设置
目录 一.前言 二.案例实现 1.编写index.wxml代码 2.编写app.wxss文件代码代码 3.编写index.wxss文件代码 三.代码编译 一.前言 本篇文章将介绍在设计微信小程序时,利 ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(7)-屏幕布局的最佳实践
管理多个屏幕 我们的菜单屏有2个按钮,一个play一个option.option里就是一些开关的设置,比如音乐音效等.这些设置将会保存到Preferences中. 多屏幕切换是游戏的基本机制,Libg ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(10)-音乐音效不求人,程序员也可以DIY
本章音效文件都来自于公共许可: http://files.cnblogs.com/mignet/sounds.zip 在游戏中,播放背景音乐和音效是基本的功能. Libgdx提供了跨平台的声音播放功 ...
最新文章
- Vim的简单实用(存活篇)
- 医疗AI技术火热,但其商业模式的落脚点究竟在哪
- 简述人工智能的发展历程图_简述墙体彩绘机发展历程
- 列举在Web前端开发中经常会设置的特殊样式!
- vue打包后图片路径错误
- Teams App设备的地理位置能力
- tomcat(14)服务器组件和服务组件
- [转]给控件做数字签名
- CCF NOI1029 信息加密
- ae预览不了多次_AE不能预览全部视频的原因分析及解决方案
- [原]CentOS 6.5 上安装 MySQL 5.6
- 毕业季-Java分布式开发面试题
- 2019五一建模A题思路
- 数学建模笔记(十):博弈模型
- php+实现群发微信模板消息_php实现微信模板消息推送
- Let's encrypt 通配域名(二级, 三级)
- 用php做一个相册的程序,搭建自己的相册 50个免费的相册程序(上)
- 数据结构 -- 魔王语言解释
- jmeter持续时间设置
- Thoth多因子策略