libgdx游戏引擎开发笔记(三)Libgdx的游戏组件部分-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

libgdx游戏引擎开发笔记(三)Libgdx的游戏组件部分

简介:

今天,再次总结一下,让我们更加清楚的了解到libgdx这款游戏引擎的框架。


1.Libgdx中游戏组件使用的简单关系说明:


      组件              介绍
AndroidApplication Activity的子类,只有启动类继承了AndroidApplication并执行才能启动Libgdx类库
ApplicationListener 仅可在初始化时注入ApplicationListener,此后除非替换Activity否则无法切换ApplicationListener
Game 是ApplicationListener的libgdx抽象实现,其中Screen可切换
Screen 基本函数与ApplicationListener近乎一致,唯一差别在于可以通过Game类用setScreen函数进行切换,如不使用Game类则可无视它的存在
Stage 游戏场景用类,用以管理添加其中的具体Actor,管理Actor的手段在于内置的Group类
Actor 游戏用演员或者说角色,与Action类组合使用时可以产生不同种类的“动画行为”,Action部分的具体实现基本与Cocos2D一致
Group 本身为Actor的具体实现,能够处理注入其中的Actor,也能以递归方式管理注入其中的其它Group
Image、Button、Label 细分Actor的具体实现,以重载方式响应事件,除Group外相互间不能组合叠加,事件能否传递取决于上级组件是否设置了相关监听


   我们再来张图关系就更顺了!嘿嘿!



104237341.jpg


2.注意事项

   1、Libgdx使用笛卡尔坐标系(初始坐标为左下0,0),而JavaSE、JavaME以及标准Android系统(还有LGame引擎)使用的是屏幕坐标系(初始坐标为左上0,0),程序员在使用时必须分清差别,以免不知道如何定位(通常笛卡尔系Y轴由下向上延伸,屏幕系Y轴由上向下延伸)。


    2、在Android环境使用Libgdx的Gdx.files.internal方法时(即FileHandle类以FileType.Internal模式工作),要读取的文件必须置于Assets文件夹下才能读取,在Linux、Mac、Windows环境下则可以置于除jar内部外的任何可读取位置。


    3、Libgdx以native方式自带图像解码器,通过其提供的Pixmap可以对指定图像进行像素级渲染操作,从而不依赖Android的Bitmap加载处理图像,不过目前只支持png、jpg、bmp三种图片格式。


    4、Libgdx要求在游戏中使用的图片宽与高皆为2的整数次幂,否则会产生一个Gdx异常并禁止加载行为(texture width and height must be powers of two)。


    5、Libgdx以ApplicationListener作为游戏的基础界面容器,但Libgdx并没有提供可以直接切换ApplicationListener的函数。目前最新版本的Libgdx中提供了Game类(ApplicationListener子类,本身为抽象类)和一个供Game类调用的Screen类用以解决此问题。具体的Libgdx切换游戏画面方法是,先用继承Game类的游戏窗体进行initialize让基础画面显示,再让具体的细分游戏模块继承Screen类进行不同游戏画面的具体绘图,而后Game类通过setScreen方法进行画面切换。


    6、Libgdx的图像加载处理(以及部分渲染),音频播放和自带的Box2D封装皆通过JNI方式实现,因此必须在libs文件夹下添加armeabi(或高版本Android系统支持的armeabi-v7a)文件夹以及相关so文件Android版Libgdx才能正常运行。


   ok!就这些了啦,本人刚开始接触游戏引擎,有什么不对的地方,谢谢指正!

参考博客:http://blog.csdn.net/cping1982/article/details/6176191



     本文转自zhf651555765 51CTO博客,原文链接:http://blog.51cto.com/smallwoniu/1255187,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: