OGEngine_2.x中BitmapFont加载后黑屏问题的解决办法
在我使用OGEngine_2.x进行消灭圈圈(星星)游戏的实践的时候,使用BitmapFont对自定义字体进行调用。
原文字体教程如下:http://blog.csdn.net/OrangeGame/article/details/40182921
原文使用的Hiero版本为v3.0,但我在网上找了很久没找到,只找到了Hiero_v2.0
根据教程,使用Hiero_v2.0生成fnt,并使用TexturePacker将png图片压缩为pvr.ccz和xml后,放入android项目当中。
发现一旦调用com.orange.opengl.font.BitmapFont构造方法加载字体文件,则出现黑屏情况,原因在于fnt无法找到需要加载的png文件(因为在原教程中png已经压缩为pvr.ccz和xml)。
解决办法:
1.用记事本打开fnt文件,将file="XXX.png"改为file="XXX.xml"(即TexturePacker生成的xml文件)。(不建议使用该方法)
此时在项目中使用BitmapFont进行字体输出,可能会出现奇怪的图案,因为TexturePacker压缩png后生成的pvr.ccz和xml的字符坐标和原png的不一样。
TexturePacker的输出设置必须与Hiero的输出设置一样,才可以正常显示。
2.直接使用Hiero_v2.0生成的fnt和png两个文件进行加载。
若输出的png文件较小可以使用这种方法。缺点是若文件较大,不进行压缩的话会比较耗内存。
Hiero_v2.0的问题在于:没有办法输出中文字符。对于仅需要英文字符的同学来说,Hiero2.0足够用了。
想要输出中文字符集可以试试BMFont。
BMFont的教程(看前半段就可以了):
http://blog.csdn.net/qiurisuixiang/article/details/8984288
不过如果要在OGE_2.1.4以及之前的版本中使用BMFont输出的fnt文件,还应该做一些修改。
1.将fnt文件用记事本打开
2.删除 alphaChnl / redChnl / greenChnl / blueChnl / kernings / kerning 等不必要的参数
3.使用ANSI编码进行保存
最后附上OGE文字输出的代码和效果图:
以下仅是GameLayer的主要代码——切勿直接使用
import com.orange.engine.device.Device;
import com.orange.entity.text.Text;
import com.orange.entity.text.TextOptions;
import com.orange.util.HorizontalAlign;
import com.orange.util.color.Color;
import com.orange.opengl.font.BitmapFont; public class GameLayer extends MatchLayer{ // 引用上级scene
private GameScene mGameScene; public GameLayer(GameScene pScene) {
super(pScene);
this.mGameScene = pScene;
initView();
}
private void initView() {
BitmapFont bitmapFont = new BitmapFont(getEngine().getTextureManager(), Device.getDevice().getFileManage(), "font/bitmapFont.fnt");
bitmapFont.load(); Text t = new Text(this.getCentreX(), 50, bitmapFont, "你好世界", new TextOptions(HorizontalAlign.CENTER), this.getVertexBufferObjectManager());
t.setColor(Color.RED);
this.attachChild(t);
}
}

附:
OGEngine_2.x中BitmapFont加载后黑屏问题的解决办法的更多相关文章
- 关于NGUI的动态加载后的刷新显示问题,解决办法!!
http://momowing.diandian.com/post/2012-09-06/40038001275 最近碰NGUI用到它的动态列表功能(ps:就是加东西,删除东西).我这里用的是UIDr ...
- ArcGIS客户端API中加载大量数据的几种解决办法
ArcGIS客户端API中加载大量数据的几种解决办法 2011-03-25 18:17 REST风格的一切事物方兴未艾,ArcGIS Server的客户端API(Javascript/Flex/Sil ...
- BadImageFormatException,未能加载正确的程序集XXX的解决办法
BadImageFormatException,未能加载正确的程序集XXX的解决办法 IDE:VS2010 语言:C# 异常:System.BadImageFormatException,未能加载正确 ...
- Eclipse中js文件修改后浏览器不能及时更新的解决办法
项目中js文件修改后浏览器不能及时更新的解决办法 转载:http://www.codeweblog.com/%E9%A1%B9%E7%9B%AE%E4%B8%ADjs%E6%96%87%E4%BB%B ...
- VMware Workstation 14 黑屏的一个解决办法
近期很多朋友遇到了VMware Workstation 14开启或新建虚拟机后黑屏的现象,同时发现如果挂起虚拟机,可以显示挂起前最后的画面.显然,虚拟机核心是正常工作的,只是“显示”方面出现了问题. ...
- jquery中load()加载页面,刷新之后,加载的页面不显示的解决办法
<script language="javascript" type="text/javascript"> $(function(){ $(&quo ...
- IIS无法加载字体文件(*.woff,*.svg)的解决办法
在编写前端代码的过程中经常会遇到使用特定的字体(*.woff,*.svg),此时在加载字体时请求会被返回 Failed to load resource: the server responded w ...
- Bootstrap 模态对话框只加载一次 remote 数据的解决办法 转载
http://my.oschina.net/qczhang/blog/190215 摘要 前端框架 Bootstrap 的模态对话框,可以使用 remote 选项指定一个 URL,这样对话框在第一次弹 ...
- 使用Django的时候,页面请求正常,也没有报任何错误,甚至连警告都没有的情况下,页面却还是原地不动或者闪一下或者无限显示加载动画的情况下的解决办法
这个问题描述比较笼统,但根据我目前遇到过两种情况来看,似乎都比较重要而且实用,所以打算分别讲述一下. 说明:Django的版本是Django2.0 第一种:URL配置错误 页面闪一下,却原地不动,可能 ...
随机推荐
- HDU1201 水题
做多了年月日,现在基本就能水过了 18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- wampserver里面出现403错误的问题解决方法
今天再装wampserver的时候,不能进入localhost和phpmyadmin,提示403错误,我自己是win10系统,已通过以下方法解决了: 1.第一个问题,就是wampserver没有切换到 ...
- Swift 算法实战之路:栈和队列
这期的内容有点剑走偏锋,我们来讨论一下栈和队列.Swift语言中没有内设的栈和队列,很多扩展库中使用Generic Type来实现栈或是队列.笔者觉得最实用的实现方法是使用数组,本期主要内容有: 栈和 ...
- 【转载】CSS3 Transitions, Transforms和Animation使用简介与应用展示
文章转载自 张鑫旭-鑫空间-鑫生活 http://www.zhangxinxu.com/wordpress/ 原文链接:http://www.zhangxinxu.com/wordpress/?p=1 ...
- (@WhiteTaken)设计模式学习——代理模式
今天学习了一下代理模式,代理模式分为很多种.目前感觉有两种是需要学习一下的. 静态代理模式 动态代理模式 1. 静态代理模式 需要被代理的类,实现一个或者多个接口. 代理类需要实现被代理类的接口,在此 ...
- MySQL自定义函数用法详解-复合结构自定义变量/流程控制
自定义函数 (user-defined function UDF)就是用一个象ABS() 或 CONCAT()这样的固有(内建)函数一样作用的新函数去扩展MySQL. 所以UDF是对MySQL功能的一 ...
- mysql的并发处理机制_下篇
MySQL的并发处理机制,有MVCC及锁机制来处理,上篇简要说明了 MVCC及隔离级别,这篇来说说mysql下的锁. 温馨提示:下文有几个表格长度较长,右下角的博文导航目录会挡道,浏览 ...
- admin的基础配置
admin自定义配置 一.admin.py 我们知道在models.py文件中创建的数据表,一方面我们可以通过视图函数对其进行增删改查,一方面我们也可以通过admin进行,通常我们是通过admin的前 ...
- (转)Java正则表达式的语法与示例
转自:http://www.cnblogs.com/lzq198754/p/5780340.html 概要: Java正则表达式的语法与示例 | |目录 1匹配验证-验证Email是否正确 2在字符串 ...
- ADO.NET生成的数据库连接字符串解析
1.概述 当我们使用ADO.NET数据实体模型生成的时候,在项目目下生成一个.edmx文件的同时,还会在app.config里面出现如下一个代码串: <?xml version="1. ...