标签: AVG

  • android游戏开发框架libgdx的使用(十九)—使用自定义配置改进AVG游戏开发

    android游戏开发框架libgdx的使用(十九)—使用自定义配置改进AVG游戏开发

    本文使用的libgdx是0.92版本,和现在的最新版可能有一些不一样的地方。全文内容仅供参考。

    先说明一下上一篇文章我使用了多张hiero图的字体绘制,因为我对源码进行了一些修改,本来想这次发出来的,但是我仔细调试了一下,发现对于多图的支持还是有问题,有些字会出现偏移。

    这个只有继续尝试了…大家可以考虑使用ttf字库。

    然后继续说上一篇,虽然实现了一个简单的效果,但是目前有很多不足。我把AVG游戏需要的资源全部提取出来,放在一个个文件夹中,然后通过配置文件加载这些数据。

    libgdx的工具库

    com.badlogic.gdx.utils就是libgdx的工具库,支持两种格式xml和json。

    我最先倾向于使用json格式,但是反复想了想,虽然json的大小可能要小点,但是没有xml直观好读。

    所以还是选择使用xml格式,读取xml文件使用XmlReader。

    XmlReader reader =new XmlReader();
    try {
    Element config = reader.parse(Gdx.files.internal("data/config.xml"));
    config.get("name");//获取属性值,如果没有属性值则返回同名child的值
    config.getAttribute("name");//获取属性值
    }catch (Exception e) {
    e.printStackTrace();
    }

    配置文件格式分析

    配置文件需要配置的内容其实就是上一篇我们硬编码进去的东西,有背景、边框、对话等。

    我设计的比较随意,不一定是最好的,大家可以参考参考。

    <?xml version="1.0" encoding="UTF-8"?>
    <scene>
    <packfile>pack</packfile>
    <background>bg1</background>
    <border>
    <border-name>border</border-name>
    <border-left>26</border-left>
    <border-right>26</border-right>
    <border-top>31</border-top>
    
  • android游戏开发框架libgdx的使用(十八)—简单的AVG游戏效果实现

    android游戏开发框架libgdx的使用(十八)—简单的AVG游戏效果实现

    本文使用的libgdx是0.92版本,和现在的最新版可能有一些不一样的地方。全文内容仅供参考。

    好久没有写libgdx的东西了,主要是最近迷上了各种算法…

    文章是关于实现简单的AVG游戏效果,可能会有好几篇。

    想用libgdx做点AVG效果主要是因为目前Android上运行的AVG游戏(主要是恋爱模拟类型)的基本基于NScripter引擎移植出来的,我的2B中兴机子跑着巨卡,所以想自己做个。

     

    何为AVG游戏

    冒险类游戏AVG (Adventure Game)通常是玩家控制角色进行虚拟冒险的游戏,其故事情节往往是以完成某个任务或是解开一个谜题的形式出现的。

    我这里说的AVG主要是指日式AVG,就是在最初的文字冒险游戏的基础上利用精美的CG图片和动人的音响效果加以强化,靠优秀的文字和剧情打动人心的一种游戏形式。

    比如夜明前的琉璃色

    20100317110151412

     

    简单分析

    AVG游戏主要是由对话,CG图和音效组成。

    拆分下来其实很简单,如下图

    thinking

    再看一张:

    thinking2

    就不举其他例子了,每个场景基本由背景(场景图),对话,人物组成。要是以前玩过的话就很清楚了,背景切换比较少,人物的变化也比较少,文字是点击或者触摸就切换到下一句去。

    我是选用的libgdx的Stage,背景和人物做成Image,对话由Label实现,对话边框由NinePatch实现,然后触摸对话框区域就切换到下一句去。

     

    文字处理

    AVG游戏的对话占据了很大部分,中文的处理很重要。

    libgdx支持中文有两种方法,一是使用Hiero制作,二是使用ttf字库(好像目前还有点问题,暂时不推荐使用)。

    最全的汉字字库有文字9万余个,但是常用的字并不多(相对于所有文字)。

    对比中国大陆、中国台湾和香港特区各自的常用字标准,可以得到3500个常用字,全部做成libgdx用的字体文件。

    总共生成12张图,共1.90M

    chinese

    还是有点大就是了。我比较偏向于先使用这个常用字开发,完成后在重新根据实际使用制作字库。

     

    libgdx实现

    我选用的是Stage,游戏由Game和Screen控制。新建一个类AVGScreen,实现Screen接口。

    private Stage stage;//舞台
    private TextureRegion background;//背景
    private List<string[]> dialogues;//对话
    private BitmapFont