本文使用的libgdx是0.92版本,和现在的最新版可能有一些不一样的地方。全文内容仅供参考。
先说明一下上一篇文章我使用了多张hiero图的字体绘制,因为我对源码进行了一些修改,本来想这次发出来的,但是我仔细调试了一下,发现对于多图的支持还是有问题,有些字会出现偏移。
这个只有继续尝试了…大家可以考虑使用ttf字库。
然后继续说上一篇,虽然实现了一个简单的效果,但是目前有很多不足。我把AVG游戏需要的资源全部提取出来,放在一个个文件夹中,然后通过配置文件加载这些数据。
libgdx的工具库
com.badlogic.gdx.utils就是libgdx的工具库,支持两种格式xml和json。
我最先倾向于使用json格式,但是反复想了想,虽然json的大小可能要小点,但是没有xml直观好读。
所以还是选择使用xml格式,读取xml文件使用XmlReader。
配置文件格式分析
配置文件需要配置的内容其实就是上一篇我们硬编码进去的东西,有背景、边框、对话等。
我设计的比较随意,不一定是最好的,大家可以参考参考。
如果对话比较长还可以继续添加<dialogue>节点。border-*那4个值就是NinePatch的左边距、右边距、上边距、下边距。
这里还有一个地方需要注意,如果我们需要切换场景怎么办?切换的场景可能是一个AVG场景,也可能是个一般的Screen。我本来想做个简单的IOC容器的,但后来想想也没有那么复杂。
在配置文件中加上一句
如果是一般Screen就是
如果是AVG场景就是
使用libgdx实现相关效果
其实整个原理和上一篇原理是一样的,唯一多的一个就是解析配置文件和场景跳转。
读取完成后构建舞台,然后绘制。唯一需要修改的就是场景跳转。
完整代码:
最后贴上效果图,这是我正在做的一个东西:
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2012/03/03/libgdx_19/