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

posted @ 2015-03-13 14:57  鉄弟  阅读(515)  评论(0)    收藏  举报