AndEngine 学习系列1-开始

    最近学习AndEngine,不过资料较少。找到一个英文的网站,作者更新了一系列的教程,觉得还不错。就当学习英文吧,翻译出来也作备忘。

    作者是位住英国的19岁波兰程序猿,这是他的个人网站:http://www.matim-dev.com/index.html,有兴趣可以直接去看。以下是第一部分的内容:

一。开始:

1.Andengine 介绍:

      Ae 是一个基于OPENGL的开源免费游戏引擎,作者是Nicolas Gramlich。该引擎封装了OPENGL的大多数重要功能,意味着即使你没有OPENGL编程经验,也可以使用该引擎 来创建游戏,只要你有JAVA编程经验。

l 引擎的主要特点:

· 支持不同分辨率设备的缩放。

· 多点触摸支持

· 物理引擎-BOX2D(愤怒的小鸟也使用该引擎)

· TMX 瓦片地图支持

· 粒子系统

· 动态壁纸扩展支持

l 使用AE的好处:

· 免费开源

· 游戏开发中的方方面面都被做好了

· 不需要OPENGL的经验

· 快速和良好的设计(注:引擎采用高内聚低耦合,模块分得很细)

· 相对来说大而活跃的帮助社区(注:www.andengine.org

· 不错的引擎扩展(注:8还是9个扩展包)

· 大量的实例,告诉你引擎能做什么

l 不足:

· 几乎没有代码文档

· 有时候速度比不上其他引擎

· 缺乏文档是初学者的最大困难

不过实例,社区还有我的(作者的)这个网站也能给初学者极大帮助

2.搭建开发环境:

环境的搭建参造RealMayo的视频,里面说得很详细。。。。。。。。。。。。

3.重要概念:

     本节描述引擎中的重要概念,简单地说就是引擎中最常用到的类和扩展.

l    1.ANDENGINE-核心术语(by  Nicolas Gramlich + updates and addons)

   Engine:

   引擎通过时间片来处理游戏,周期性地同步场景的绘制和更新。你也可以使用ENGINE的子类:

· LimitedFPSEngine – 试着 实现限定的FPS。(注:即固定的帧数,代码中还有一种是FixStepEngine 即固定步长,文中没有写。意思是每次更新传递的时间都是固定的,即使实际更新场景用的时间超过的了设定的,也会传入固定的时间。)

   IResolutionPolicy:

   IresolutionPolicy 接口实现是EngineOptions的一部分,它告诉引擎如何处理不同设备的不同屏幕尺寸。I.E. RatioResolutionPolicy 在保持比例的情况下会最大化SurfaceView到屏幕的大小。这样屏幕上的东西不会发生变形。

· RatioResolutionPolicy  保持比例

· FillResolutionPolicy 填充屏幕,可能被拉伸

   Camera:

   相机就是定义场景中可显示的部分,通常一个场景有一个相机,Camera 的子类有更多功能:

·  BoundCamera- 可以设定场景的边界。

· ZoomCamera – 可以缩放,定点缩放,滚动场景

   Scene:

   场景是绘制到屏幕上的所有对象的根容器,一个场景可以包含多层,每层容纳(静态或者动态地)一定数量的实体(Entity)。Scene 有子类:HUD, MenuScene, CameraScene, 这些子类绘制在固定位置和摄相机镜头无关。

· HUD- Head Up Display. 像游戏中的分数显示。(注:理解成电视频道的台标!)

   Entity:

 实体就是可以被绘制的对象,如,精灵Sprites, 矩形Rectangles, 文字 Text 或 线条Lines等,每个实体都有,位置/旋转/缩放/颜色等等属性。

·  Sprite- 具有纹理(Texture)的实体(Entity)

· TiledSprite- 被切开了的精灵

· AnimatedSprite- TiledSprite的扩展,可以按指定的时间播放。

   Texture:

   Texture 就是内存中图像的一个切片。在Android上纹理的宽和高应当是2的幂(但在ELES2中没有这个要求了,可以很好地减少内存使用。) AE 将许多ITextureSources 源组成一个纹理,可以更合理地使用内存空间。

TextureRegion:

TextureRegion 定义了Texture上的一矩形区域,用来定义精灵要绘制的部分。

4.AndEngine 的官方例子:

AE虽然缺乏文档,但是别担心,实例代码可以很好帮你理解引擎如何工作,这是链接:AndEngine Examples GitHub link 

5. GLES1 和GLES2的比较:

有三个AE的版本,GLES1, GLES2, GLES2 Anchor Center。GLES1已经停止开发。虽然有人说GLES2比GLES1要慢( CLICK HERE)。但是还是强烈建议使用最新版本。

6.GLES2 和 GLES2 Anchor Center 的不同:

G2AC 最有意义的改变是坐标系统。原点在左下。原因是:

· 和原生OpenGL的坐标系统一致。

·  cocos2d-iphone and cocos2d-x的一致。注:我理解为就是数学上的笛卡尔坐标系

· 更容易更有效构造引擎,使用AndEngineCocosBuilderExtension扩展包能读取从CocosBuilder 导出的格式(COCOS有较多的工具)。

· 对需要滚屏的游戏显得更自然。

另外一个变化是锚点(旋转,缩放等的中心)是个从0.01.0相对量。总得来说,这有点像cocos-2d了。这不是什么坏事。

为了更好理解G2AC的坐标系统如何工作,举个例子:

假如上图是一个场景,摄像机宽高为800x480,则:

· 左下角(bottom left corner)为(0,0),左上(top left corner)为(0, 480)

· 左下角(bottom right corner)为(800, 0),右上(top right corner)为(800, 480)

· 场景中有image Aimage B, 和 image C 三张图。

· image A 是50X50, 那么它的坐标应当是(25, 25)。

· image B 200x150 ,要放在屏幕中间,那么它的坐标就是(400,240

B都是与场景关联(Attached), C 是与B关联,即在B的(0,0)点。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值