3、ApplicationAdapter的生命周期,BitmapFont,FreeTypeFontGenerator的学习
昨天到今天就学习这一点东西,心情不好,闹情绪吧。
文中提到的软件存放在云盘了http://pan.baidu.com/s/1dD4Hn9J
1、ApplicationAdapter的生命周期
ApplicationAdapter的生命周期和android的Activity生命周期非常类似
create () 当应用程序创建时,此方法被调用一次
resize(int width, int height) 每次游戏屏幕重置尺寸并且不是暂停状态得时候调用此方法,在android手机上,当关闭屏幕后打开,home键之后回来都是会都是会调用,调用的次数,有时候是1次,有时候是2次,这个我具体也不清楚啥个情况,知道的,请指导。在create()后调用一次参数是屏幕被重置后的新宽度和高度
render () 每次渲染发生时游戏循环调用此方法。游戏更新发生在绘制之前。意思就是说先处理逻辑,在处理绘制。
pause () 在应用destroyed前调用此方法。在android中档Home键按下或者由重新进入程序时调用此方法。在桌面应用中,退出应用时在dispose() 之间调用这是一个保存游戏状态的好地方,在android中resume ()不一定会被调用。
resume () 这个方法仅在android中调用, 当应用获得焦点时. 桌面应用中将不会调用此方法。
dispose () 当应用destroyed时,调用此方法,在pause()之后
2、BitmapFont
说白了就是字体吧。刚开始看到这个的时候,就想到了android中的bitmap(位图),现在这个后面加入了font,我认为就是字体位图吧。
这个字体位图,需要通过其他软件来制作,这里偶在网上搜刮了一个出来hiero.jar,通过这个来生成字体
通过这个软件编辑后会生成2个文件,一个是.fnt文件,另一个是.png文件
使用字体的时候需要将这2个文件放入assets文件夹
new BitmapFont(Gdx.files.internal("font.fnt"), Gdx.files.internal("font.png"), false);//最后一参数,表示字体是否翻转
setColor(int arg0,int arg1,int arg2,int arg3);设置字体的颜色,不调用该方法就是默认的颜色
setScale(float);设置字体的缩放比例
绘制的时候,有一个区别,就是换行的问题
// 加了换行符也是不能换行的
BF_text.draw(SB_pen, "好好学期,\n天天向上", 200, BF_text.getLineHeight() * 2, 5, 10);//第一个参数是画笔,第二个参数是绘制的文字(这个文字,如果是不在.fnt文字里面的文字,这里就不会显示出来的),第三四个参数是坐标值
// 这种切字符的,\n也是属于一个字符
BF_text.draw(SB_pen, "\n天天向上", 200 + BF_text.getSpaceWidth() * 9, BF_text.getLineHeight() * 2, 0, 5);//第五个参数是切割要绘制文字的下标,第六个参数是结束下标,绘制出来不包括结束的下标文字
// 换行专用
BF_text.drawMultiLine(SB_pen, "好好学期,\n天天向上", 200 + BF_text.getSpaceWidth() * 9 * 2, BF_text.getLineHeight() * 2);
3、FreeTypeFontGenerator
字体样式发射器,就是用于自己使用其他的字体样式
使用字体样式需要jar的支持,我们在创建项目的时候,libgdx并没有主动帮我添加进去
首先,找到我们libgdx,我这里是1.5.4版本,打开找到这2个文件
// 加载字体的样式
FreeTypeFontGenerator FTFG_fontType = new FreeTypeFontGenerator(Gdx.files.internal("test.ttf"));
加载样式之后需要配置字体的大小,文字,翻转
FreeTypeFontParameter FTFP = new FreeTypeFontParameter();
FTFP.size = 25;//字体大小
FTFP.characters = FreeTypeFontGenerator.DEFAULT_CHARS + "什么跟神马你说啥呢,我听不明白哇";//文字库,这里需要注意的是,这里面不能有重复的字符出现,否则就会报错 FreeTypeFontGenerator.DEFAULT_CHARS是字母+数字之类的
FTFP.flip = false;//不翻转
BitmapFont BF_textType = FTFG_fontType.generateFont(FTFP);//获取字体
//绘制的时候和BitmapFont同一个道理的,如果使用没有规定的文字,就不会绘制出来
昨天收获的不多,就这么一点点,好好学习吧,还是要坚持把自己学习过的记录下来,加深一下印象吧,加油
2015年3月13日15:06:06