下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >移动开发 >详说android游戏开发教程四大内容分析

详说android游戏开发教程四大内容分析

__小性子 (╰_发布于 2016-03-29 18:05查看:1474回复:3

  blob.png

  一、android游戏开发概念

  Android 平台是 Open Handset Alliance 的成果,Open Handset Alliance 组织由一群共同致力于构建更好的移动电话的公司组成。这个组织由 Google 领导,包括移动运营商、手持设备制造商、零部件制造商、软件解决方案和平台提供商以及市场营销公司。从软件开发的观点看,Android 正处在开源领域的中心位置。

  市场上第一款支持 Android 的手机是由 HTC 制造并由 T-Mobile 供应的 G1。这款设备从设想到推出花了大约一年的时间,惟一可用的软件开发工具是一些实行增量改进的 SDK 发行版。随着 G1 发行日的临近,Android 团队发布了 SDK V1.0,用于这个新平台的应用程序也浮出水面。

  Android 有丰富的功能,因此很容易与桌面操作系统混淆。Android 是一个分层的环境,构建在 Linux 内核的基础上,它包括丰富的功能。包括一个构建在 WebKit 基础上的可嵌入浏览器,iPhone 的 Mobile Safari 浏览器同样也是以 WebKit 为基础。Android 提供多种连接选项,包括 WiFi、蓝牙和通过蜂窝(cellular)连接的无线数据传输(例如 GPRS、EDGE 和 3G)。Android 应用程序中一项流行的技术是链接到 Google 地图,以便在应用程序中显示地址。Android 软件栈还提供对基于位置的服务(例如 GPS)和加速计的支持,不过并不是所有的 Android 设备都配备了必需的硬件。另外还有摄像支持。

  二、android游戏开发前准备

  android平台游戏开发,那你需要知道很多基础东西。我是Light Racer,Light Racer 3D,Antigen,Deadly Chambers and Wixel的开发者,如今这些游戏都放置在android market上。在我开发游戏之前,我的第一个android 应用程序是原始的Light Racer 。我也学到很多关于写android游戏的经验,因此很愿意分享给大家。我甚至写了一本关于Light Racer 3D详细开发的在线书籍——《development of Light Racer 3D》。如果你之前已经有游戏开发的经验,那么跳转到移动开发平台将不会太难。只需要学习android的框架和api就可以了。如果你是刚刚学习游戏开发,那我这里提供一个必须知道的列表入门。

  1、学习java游戏开发语言。

  Android的环境是以java为根底。由于java是比c++更简单上手的开发语言,也是移动开发的标准,再加上当前我也在用,所以这对菜鸟将是一个极好的开头。Google在这方面也做了许多工作,比如供给文档方式的api和大量的比如。这些比如简直100%的运用api的函数,因而也被叫做API Demos。假如你对java有必定的了解和已经在运用Eclipse了,那么开端第一个比如就会适当的简单。假如曾经你从未学过任何的代码,那它将会随着你的行进不断吸引着你,不过不能泄气。

  2、理解android 应用框架

  如果你不理解清楚android 应用框架,你后面学习解决游戏问题时将会困难重重。你应该去理解 Applications, Activities, Intents 和它们之间是如何联系的。Google现已供给了很多好的信息在这结构里。更重要的事情是理解为什么游戏需求多个activity构成和如何规划游戏才有好的用户体会。一切的都关联着activity的生命周期。

  3、处理Activity 的生命周期

  系统控制创立,恢复,暂停和毁掉Activity的状况。想具有好的操作的使用程序,那正确处理这些事情是非常重要。在规划游戏之前了解这些的作业原理能够省去你调试时刻和规划消耗的时刻。关于大多数使用,android默认的设置就能够满意大多数使用,可是关于游戏你或许需求去思考设置单例标志。由于当设置的是默认时,android在适合的时候每次都会创立一个新的activity实例。关于游戏,你或许只需求一个activity实例。这就意味着你需求去办理这些事物的状况,可是关于我则需思考处理一些资源办理的问题。

  4、正视使用主线程

  无论你正在写什么类型的游戏,你或许有或许没有主循环。如果你的游戏不是依赖于时间或者只是单纯的回应用户的动作,除了等待用户输入,就不会其他视觉的变化,你可能不需要主循环。但是如果你正在写的游戏包括动画,时间或者其他自动化等等,你应该正视地考虑使用主线程。主循环需要在自己的线程里跑动,因为所有更新UI界面的线程都必须在android主 UI线程里更新UI界面,更新界面执行的顺序通常如下:State, Input, AI, Physics, Animation, Sound and Video。

  三、安卓游戏开发的MVC模式

  1,通过View和SurfaceView来显示界面的视图。(处理界面与用户的交互事件,如,触笔点击,用户按键等。可通过View类的onKeyDown,onKeyUp,onTouchEvent等)。

  2,用Activity来控制游戏的整体结构。

  3,设计一个逻辑类,用来处理逻辑运算。

  Android中任何一个View类都只有重写onDraw方法来实现界面显示。Android中提供了onKeyUp,onKeyDown,onKeyMultiple,onKeyPreIme,onTouchEvent,onTrackballEvent等方法。可以用来处理游戏中的事件消息。所以继承View时,需要重载这些方法。Android中提供了invalidate来刷新界面,但invalidate不能直接在线程中调用,违背单线程模型。因此Android中最常用的方法是利用Handler来时更新UI界面。

  四、Android游戏常见引擎

  1、LGame

  LGame是一款国人开发的Java游戏引擎,除了基本的音效、图形、物理、精灵等常用组件以外,也内置有Ioc、xml、http等常用Java组件的封装,代价是jar体积较为庞大,PC版 已突破1.2MB,Android版有所简化也在500KB左右。

  2、libgdx

  libgdx是一款基于OpenGL ES技术开发的Android游戏引擎,支持Android平台下的2D游戏开发,物理引擎采用Box2D实现。单就性能角度来说,堪称是一款非常强大的 Android游戏引擎,但缺陷在于精灵类等相关组件在使用上不够简化,而且文档也较为匮乏。

  3、Alien3d

  Alien3d是一款体积非常之小的Android 3D游戏引擎,基于OpenGL ES技术开发。为了压缩体积,它根据不同功能采用多jar方式发布(包括alien3d-engine.jar,alien3d- tiled.jar,alien3d-sprites.jar,alien3d-shapes.jar,alien3d- particles2d.jar,),事实上它的核心文件大约只有40KB,所有相关jar的总和也不足150KB。

  4、Angle

  Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGL ES技术开发。该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现,缺陷在于文档不足,而且下载的代码中仅仅包含有少量的示例教程。

  5、jPCT

  jPCT是一款基于OpenGL技术开发的3D图形引擎(PC环境为标准OpenGL,Android为OpenGL ES), 以Java语言为基础的,拥有功能强大的Java 3D解决方案。jPCT的最大优势之一,就在于它惊人的向下兼容性。该引擎与LGame(此为2D游戏引擎)相类似,目前拥有PC(J2SE)以及Android两个开发版本。


收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

共有3条评论

  • 留印!!一口气看了好多篇教程,什么方面都看,因为课课家要转型为全能人才了吗?真是这样就6大发了hhhhh

    2016-03-30 17:13赞 (0)回复沙发
  • 顶楼上姐姐d=====( ̄▽ ̄*)b

    神话山~

    2016-03-30 17:25赞 (0)回复板凳
  • LGame作为一款Java游戏引擎,jar体积庞大绝对是硬伤,不过胜在功能特别强大!抛开体积不说,绝对是首选!!


    2016-03-31 10:38赞 (0)回复地板
  • 慧星的那一夜
  • MK
  • 药师
  • IT宅男
  • mr jack
  • YUI
  • Mr ken
  • cappuccino
  • 课课家技术团队1
  • 选择版块:

  • 标题:

  • 内容

  • 验证码:

  • 标题:

  • 内容

  • 选择版块:

移动帖子x

移动到: