Android游戏开发大全(第二版)(txt+pdf+epub+mobi电子书下载)


发布时间:2021-04-20 02:52:45

点击下载

作者:吴亚峰于复兴杜化美编著

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Android游戏开发大全(第二版)

Android游戏开发大全(第二版)试读:

前言

为什么要写一本这样的书

Android 正以前所未有的速度聚集着来自世界各地的开发者,越来越多的创意被应用到Android应用程序的开发中,大有席卷整个手机产业的趋势。

面对如此火爆的Android大潮,一些有关Android的技术书籍也开始登上各地书架。但是纵观这些本来就为数不多的Android书籍,却没有一本是关于Android游戏开发专题的,而手机游戏历来是移动开发中最重要的部分。

本书正是在这种情况下应运而生的,作为国内第一本讲解Android游戏案例开发的专业书籍,作者为这本书倾注了很多的心血。书中既有对Android应用程序框架的介绍,也有对游戏开发相关知识的讲解,同时还有多个 Android 平台下的实际游戏案例。希望可以快速帮助读者提高在Android平台下进行游戏开发的能力。

内容导读

本书内容分为两篇,第1篇主要介绍Android平台下应用程序的框架和基础开发知识,同时还介绍了游戏开发的相关知识,主要内容安排如下。

续表

第2篇主要内容为8个游戏案例,其中包括体育游戏、益智游戏、动作游戏、RPG游戏等不同的游戏类型,每种游戏类型的开发都有其独特的地方,具体安排如下。

本书特点

1.内容充实,由浅入深

本书内容既包括Android平台下开发的基础知识,也有游戏编程的实用技巧,同时还有多个游戏实际案例等供读者学习。在知识的层次上由浅入深,真正地将Android和游戏开发结合起来。

2.实例丰富,讲解详细

本书在介绍Android基础内容时,每个知识点都配有相应的实例,通过这些实例,读者可以更好地理解书中所介绍的知识。同时在实例的讲解上也尽量做到条理清楚,读者可以按照书中列出的步骤非常容易地实现实例中的功能。

3.案例经典,含金量高

本书中的游戏案例均是作者精心挑选的,不同类型的游戏有着其独特的开发方式。本书中的案例囊括了不同的游戏类型,以及不同的游戏开发技巧,以期让读者全面掌握手机游戏的开发技术,具有很高的含金量,非常适合各类爱好游戏开发的读者学习。

4.配合光盘,视频教学

为了帮助读者更好地利用本书提高自己的开发技能,本书附赠了DVD光盘,其中包含了本书中所有实例和游戏案例的源代码、电子教案和教学视频。读者可以参考DVD光盘中的内容提高学习效率。

本书面向的读者

● Android初学者

对于Android的初学者,可以通过本书第1篇的内容巩固Android的知识,并了解与游戏开发相关的诸如人工智能和物理引擎等知识。然后在此基础上学习本书第2篇的游戏案例,这样可以全面掌握Android平台下游戏开发的技巧。

● 有Java基础的读者

Android平台下的开发基于Java语言,所以对于有Java基础的读者来说,阅读本书将不会感觉到困难。读者可以通过第1篇的基础内容迅速熟悉Android平台下应用程序的框架和开发流程,然后通过第2篇的游戏案例提高自己在游戏开发方面的能力。

● 在职开发人员

本书中的游戏案例都是作者精心挑选的,其中涉及的与游戏开发相关的知识均是作者多年来积累的经验与心得体会。具有一定开发经验的在职开发人员可以通过本书进一步提高开发水平,并迅速转职成为Android的游戏开发人员。

关于作者

吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有10多年的 Java开发与培训经验。主要的研究方向为OpenGL ES、手机游戏、Java EE以及搜索引擎。同时为手机游戏、Java EE独立软件开发工程师,并兼任百纳科技 Java培训中心首席培训师。近10年来为多家著名企业培养了上千名高级软件开发人员,曾编写过《菜鸟成长之路——Java程序员职场全攻略》、《Android 3D游戏开发技术详解与典型案例》、《Android应用案例开发大全》、《Android游戏开发大全》、《Android 3D游戏开发技术宝典——OpenGL ES 2.0》、《Unity 3D游戏开发技术详解与典型案例》等多本畅销技术书籍。2008年初开始关注Android平台下的3D应用开发,并开发出一系列优秀的Android应用程序与3D游戏。

于复兴,北京科技大学硕士,从业于计算机软件领域10年,在软件开发和计算机教学方面有着丰富的经验。工作期间曾主持科研项目“PSP流量可视化检测系统研究与实现”,主持研发了省市级项目多项,同时为多家企事业单位设计开发了管理信息系统,并在各种科技刊物上发表多篇相关论文。2008年开始关注Android平台下的应用开发,参与开发了多款手机3D游戏应用。

杜化美,西安电子科技大学硕士,有多年的Java程序开发与培训经验。曾参与两项国家自然科学基金项目,在国内外刊物上发表论文10余篇。同时兼任嵌入式独立软件工程师,在软件领域有8年的从业经验,最近3年致力于Android嵌入式系统的研究。

致谢

本书在编写过程中得到了唐山百纳科技有限公司Java培训中心的大力支持,同时于庭龙、魏鹏飞、李腾飞、王旅波、李胜杰、郭超、王思维、仇磊、夏学良、冯儒韬、郑培阳、郭小月、李雪晴、宋盼盼、刘阔、梁宇、黄建勋、蒋科、任俊刚、王海峰以及作者的家人为本书的编写提供了很多帮助,在此表示衷心感谢!

由于编者水平有限,书中疏漏之处在所难免,欢迎广大读者批评指正。

编辑联系邮箱:zhangtao@ptpress.com.cn。

编者

目录   封面   扉页   前言   

第一篇 Android游戏开发核心技术

      

第1章 Android平台简介

         1.1 Android的来龙去脉         1.2 掀起Android的盖头来            1.2.1 选择Android的理由            1.2.2 Android的应用程序框架         1.3 Android开发环境的搭建            1.3.1 SDK的下载及安装            1.3.2 Eclipse集成开发环境的搭建            1.3.3 虚拟设备的创建与模拟器的运行            1.3.4 第一个Android程序            1.3.5 Android程序的监控与调试         1.4 小结      

第2章 Android游戏开发中的前台渲染

         2.1 创建Android用户界面            2.1.1 布局管理            2.1.2 常用控件及其事件处理         2.2 图形与动画在Android中的实现            2.2.1 简单图形的绘制            2.2.2 贴图的艺术            2.2.3 自定义动画的播放         2.3 Android平台下的多媒体开发            2.3.1 音频的播放            2.3.2 视频的播放            2.3.3 Camera图像采集         2.4 小结      

第3章 Android游戏开发中的交互式通信

         3.1 Android应用程序的基本组件            3.1.1 Activity组件            3.1.2 Service组件            3.1.3 Broadcast Receiver组件            3.1.4 Content Provider组件            3.1.5 AndroidManifest.xml文件简介         3.2 应用程序的内部通信            3.2.1 消息的处理者——Handler类简介            3.2.2 使用Handler进行内部通信         3.3 应用程序组件之间的通信            3.3.1 Intent类简介            3.3.2 应用程序组件——IntentFilter类简介            3.3.3 示例1:与Android系统组件通信            3.3.4 示例2:应用程序组件间通信示例Activity部分的开发            3.3.5 示例3:应用程序组件间通信示例Service部分的开发         3.4 小结      

第4章 Android游戏开发中的数据存储和传感器

         4.1 在Android平台上实现数据存储            4.1.1 私有文件夹文件的写入与读取            4.1.2 读取Resources和Assets中的文件            4.1.3 轻量级数据库SQLite简介            4.1.4 SQLite的使用示例            4.1.5 数据共享者——Content Provider的使用            4.1.6 简单的数据存储——Preferences的使用         4.2 Android平台下传感器应用的开发            4.2.1 基本开发步骤            4.2.2 光传感器            4.2.3 温度传感器            4.2.4 接近传感器            4.2.5 磁场传感器            4.2.6 加速度传感器            4.2.7 姿态传感器         4.3 小结      

第5章 Android游戏开发中的网络编程

         5.1 基于Socket套接字的网络编程         5.2 基于HTTP的网络编程            5.2.1 通过URL获取网络资源            5.2.2 在Android中解析XML         5.3 Android平台下的Google Map            5.3.1 准备工作            5.3.2 简单的案例         5.4 蓝牙通信            5.4.1 基础知识            5.4.2 简单的案例         5.5 小结      

第6章 不一样的游戏,一样的精彩应用

         6.1 射击类游戏            6.1.1 游戏玩法            6.1.2 视觉效果            6.1.3 游戏内容设计         6.2 竞速类游戏            6.2.1 游戏玩法            6.2.2 视觉效果            6.2.3 游戏内容设计         6.3 益智类游戏            6.3.1 游戏玩法            6.3.2 视觉效果            6.3.3 游戏内容设计         6.4 角色扮演游戏            6.4.1 游戏玩法            6.4.2 视觉效果            6.4.3 游戏内容设计         6.5 闯关动作类游戏            6.5.1 游戏玩法            6.5.2 视觉效果            6.5.3 游戏内容设计         6.6 冒险游戏            6.6.1 游戏玩法            6.6.2 视觉效果            6.6.3 游戏内容设计         6.7 策略游戏            6.7.1 游戏玩法            6.7.2 视觉效果            6.7.3 游戏内容设计         6.8 养成类游戏            6.8.1 游戏玩法            6.8.2 视觉效果            6.8.3 游戏内容设计         6.9 经营类游戏            6.9.1 游戏玩法            6.9.2 视觉效果            6.9.3 游戏内容设计         6.10 体育类游戏            6.10.1 游戏玩法            6.10.2 视觉效果            6.10.3 游戏内容设计         6.11 小结      

第7章 游戏背后的数学与物理

         7.1 编程中经常用到的数理知识            7.1.1 数学方面            7.1.2 物理方面         7.2 物理小球在游戏中的应用            7.2.1 开发运动体Movable类的代码            7.2.2 开发物理引擎BallThread类的代码            7.2.3 视图类——开发BallView类的代码            7.2.4 绘制线程——开发DrawThread类的代码            7.2.5 开发Activity部分的代码         7.3 粒子系统            7.3.1 粒子对象类——开发粒子对象Particle类和粒子集合ParticleSet类            7.3.2 开发焰火粒子系统的物理引擎ParticleThread类的代码            7.3.3 视图类——开发视图类ParticleView及其相关类            7.3.4 开发程序Activity部分的代码            7.3.5 将焰火粒子系统改为瀑布粒子系统         7.4 碰撞检测技术            7.4.1 碰撞检测技术基础            7.4.2 游戏中实体对象之间的碰撞检测            7.4.3 游戏实体对象与环境之间的碰撞检测         7.5 用粒子系统模拟流体            7.5.1 基本原理            7.5.2 一个简单的案例            7.5.3 通过将物理计算并行化提高效率         7.6 小结      

第8章 游戏地图必知必会

         8.1 两种不同单位形状的地图            8.1.1 正方形地图            8.1.2 正方形地图案例            8.1.3 正六边形地图            8.1.4 正六边形地图案例            8.1.5 正方形地图和正六边形地图的比较         8.2 正六边形地图路径搜索            8.2.1 路径搜索示例基本框架的搭建            8.2.2 深度优先路径搜索DFS            8.2.3 广度优先路径搜索BFS            8.2.4 路径搜索算法——Dijkstra            8.2.5 用A*算法优化算法         8.3 地图编辑器与关卡设计            8.3.1 关卡地图的重要性            8.3.2 图片分割界面的实现            8.3.3 地图设计界面的实现         8.4 小结      

第9章 游戏开发小秘技

         9.1 有限状态机            9.1.1 何为有限状态机            9.1.2 有限状态机的简单实现            9.1.3 有限状态机的OO实现         9.2 游戏中的模糊逻辑            9.2.1 模糊的才是真实的            9.2.2 如何在Android中将游戏模糊化         9.3 游戏的基本优化技巧            9.3.1 代码上的小艺术            9.3.2 Android中的查找表技术            9.3.3 游戏的感觉和性能问题         9.4 小结      

第10章 游戏的心脏——物理引擎

         10.1 物理引擎很重要            10.1.1 什么是物理引擎            10.1.2 常见的物理引擎         10.2 2D的王者 JBox2D            10.2.1 基本的物理学概念            10.2.2 JBox2D中常用类的介绍         10.3 球体撞击木块金字塔案例            10.3.1 案例运行效果            10.3.2 案例的基本框架结构            10.3.3 常量类——Constant            10.3.4 抽象类——MyBody            10.3.5 圆形刚体类——MyCircleColor            10.3.6 生成刚体形状的工具类——Box2DUtil            10.3.7 颜色工具类——ColorUtil            10.3.8 主控制类——MyBox2dActivity            10.3.9 显示界面类——GameView            10.3.10 绘制线程类——DrawThread         10.4 简易打砖块案例            10.4.1 一般碰撞版            10.4.2 碰撞后消失版         10.5 旋转关节跷跷板案例            10.5.1 旋转关节介绍            10.5.2 多边形刚体类MyPolygonColor的开发            10.5.3 生成刚体形状的工具类——Box2DUtil            10.5.4 将场景中的刚体摆放到位            10.5.5 增加旋转关节         10.6 旋转关节链条摆案例            10.6.1 案例运行效果            10.6.2 案例的机械结构            10.6.3 主控制类——MyBox2dActivity         10.7 组合机械结构案例            10.7.1 案例运行效果            10.7.2 整体场景的机械结构            10.7.3 案例的基本框架结构            10.7.4 圆形刚体类MyCircleColor            10.7.5 生成刚体的工具类Box2DUtil            10.7.6 游戏界面——GameView            10.7.7 主控制类MyBox2dActivity            10.7.8 绘画线程类——DrawThread         10.8 小结      

第11章 OpenGL ES 3D应用开发基础

         11.1 OpenGL ES概述及3D基本图形绘制            11.1.1 OpenGL及OpenGL ES简介            11.1.2 3D基本知识            11.1.3 使用索引的不同绘制方式            11.1.4 用索引法绘制三角形的案例            11.1.5 不使用索引数据绘制         11.2 正交投影和透视投影            11.2.1 正交投影            11.2.2 透视投影            11.2.3 两种投影方式的原理及视口            11.2.4 两种投影方式的案例         11.3 光照与材质            11.3.1 光照的3种组成元素            11.3.2 定向光与定位光            11.3.3 法向量            11.3.4 材质            11.3.5 两种光源的案例         11.4 纹理及纹理映射            11.4.1 纹理映射基本原理            11.4.2 使用纹理映射的案例            11.4.3 几种纹理拉伸方式            11.4.4 几种纹理过滤方式         11.5 摄像机和雾特效            11.5.1 摄像机的设置            11.5.2 设置合理的视角            11.5.3 雾特效的开发         11.6 典型几何体的开发            11.6.1 圆柱            11.6.2 圆锥            11.6.3 球            11.6.4 椭圆体            11.6.5 胶囊体            11.6.6 几何体大集合         11.7 小结   

第二篇 Android游戏开发实战综合案例

      

第12章 滚屏动作游戏——太空保卫战

         12.1 游戏的背景及功能概述            12.1.1 游戏背景概述            12.1.2 游戏功能简介         12.2 游戏的策划及准备工作            12.2.1 游戏的策划            12.2.2 Android平台下游戏开发的准备工作         12.3 游戏的架构            12.3.1 各种类的简要介绍            12.3.2 游戏的框架简介         12.4 辅助界面相关类的实现            12.4.1 主控制类——PlaneActivity的实现            12.4.2 欢迎界面WelcomeView类            12.4.3 其他辅助界面的介绍         12.5 游戏界面的框架设计         12.6 游戏实体相关类的实现            12.6.1 飞机Plane类的实现            12.6.2 敌方飞机EnemyPlane类的实现            12.6.3 子弹Bullet类的实现            12.6.4 其他相关类的实现         12.7 游戏界面的完善            12.7.1 地图类Maps的实现            12.7.2 背景滚动类GameViewBackGroundThread的实现            12.7.3 物体移动线程MoveThread的实现            12.7.4 键盘监听线程PlanMoveThread的实现            12.7.5 图片初始化方法 initBitmap的实现            12.7.6 绘制方法onDraw的实现         12.8 游戏的优化与改进      

第13章 棋牌游戏——中国象棋人机对弈

         13.1 游戏的背景及功能概述            13.1.1 游戏背景概述            13.1.2 游戏功能介绍         13.2 游戏的策划及准备工作            13.2.1 游戏的策划            13.2.2 Android平台下游戏的准备工作         13.3 游戏的架构            13.3.1 各个类简要介绍            13.3.2 游戏框架简介         13.4 主控制类——Chess_DJB_Activity         13.5 辅助界面相关类         13.6 游戏界面相关类            13.6.1 游戏界面绘制类GameView            13.6.2 游戏界面常量类ViewConstant         13.7 走法引擎相关类            13.7.1 常量类Constant            13.7.2 工具类Chess_LoadUtil            13.7.3 走法引擎主类LoadUtil            13.7.4 走法的排序规则类MyComparator            13.7.5 记录走棋步骤类StackplayChess         13.8 游戏的优化与改进      

第14章 物理传感器游戏——哇!重力球

         14.1 游戏背景及功能概述            14.1.1 游戏背景概述            14.1.2 游戏功能简介         14.2 游戏的策划和准备工作            14.2.1 游戏的策划            14.2.2 游戏的准备工作         14.3 游戏的架构            14.3.1 游戏的总体架构            14.3.2 游戏的类架构         14.4 主控制类——TableBallActivity类的开发         14.5 界面相关类            14.5.1 主界面类MainMenuView            14.5.2 模式选择界面类PatternChooseView            14.5.3 选关界面LevelChooseView            14.5.4 历史记录界面HistoryView            14.5.5 设置界面SettingsView         14.6 工具辅助类            14.6.1 数据库类DBUtil            14.6.2 声音工具类SoundUtil            14.6.3 图片工具类PicLoadUtil            14.6.4 时间相关类         14.7 刚体类            14.7.1 刚体父类MyBody            14.7.2 球洞类Hole            14.7.3 变化的洞FlashHole类            14.7.4 创建刚体的工具类         14.8 游戏界面相关类            14.8.1 游戏界面GameView            14.8.2 碰撞响应类CollisionAction            14.8.3 游戏界面绘画线程DrawThread         14.9 游戏的优化与改进      

第15章 塔防游戏——炫彩塔防

         15.1 游戏背景及功能概述            15.1.1 游戏背景概述            15.1.2 游戏功能介绍         15.2 游戏的策划及准备工作            15.2.1 游戏的策划            15.2.2 Android平台下游戏开发的准备工作         15.3 游戏的架构            15.3.1 各个类的简要介绍            15.3.2 游戏框架简介         15.4 游戏辅助界面            15.4.1 主菜单界面            15.4.2 游戏关卡界面            15.4.3 关于游戏界面         15.5 游戏算法及主界面相关类            15.5.1 游戏核心算法类——Game            15.5.2 游戏界面相关类            15.5.3 怪物类——Monster_Square            15.5.4 炮塔类——Tower_Shell            15.5.5 子弹相关类            15.5.6 地图功能类——Blood_Up            15.5.7 怪物生成线程——CreateMonster            15.5.8 爆炸类——Utils            15.5.9 屏幕自适应相关类         15.6 游戏的优化及改进      

第16章 策略游戏——回到战国

         16.1 游戏背景及功能概述            16.1.1 游戏背景概述            16.1.2 游戏功能简介         16.2 游戏的策划及准备工作            16.2.1 游戏的策划            16.2.2 Android平台下游戏的准备工作         16.3 游戏的架构            16.3.1 游戏的模块架构            16.3.2 游戏各个类的简要介绍         16.4 地图设计器的开发            16.4.1 底层地图设计器的开发            16.4.2 上层地图设计器的开发         16.5 Activity和游戏工具类的开发            16.5.1 主控制类——HDZGActivity的介绍            16.5.2 公式封装类——GameFormula的介绍            16.5.3 常量工具类ConstantUtil的介绍         16.6 数据存取模块的开发            16.6.1 城池信息以及地图层信息的封装类            16.6.2 数据存取相关类的介绍         16.7 英雄角色模块的开发            16.7.1 Hero类的代码框架            16.7.2 英雄运动线程——HeroGoThread类的开发            16.7.3 辅助线程——HeroBackDataThread类的开发         16.8 表示层界面模块的开发            16.8.1 滚屏类——ScreenRollView类的开发            16.8.2 滚屏线程——ScreenRollThread的开发            16.8.3 游戏界面GameView的框架介绍            16.8.4 游戏界面绘制方法onDraw的介绍            16.8.5 游戏界面屏幕监听方法onTouch的介绍            16.8.6 游戏界面后台线程GameViewThread的介绍         16.9 管理面板模块的开发            16.9.1 人物属性面板类ManPanelView的开发            16.9.2 城池管理面板类CityManageView的开发         16.10 地图中可遇实体模块的开发            16.10.1 绘制类——MyDrawable的开发            16.10.2 抽象类——MyMeetableDrawable的开发            16.10.3 森林类——ForestDrawable的开发            16.10.4 可遇实体对象的调用流程         16.11 英雄技能模块的开发            16.11.1 技能抽象类——Skill的开发            16.11.2 伐木技能类——LumberSkill的开发            16.11.3 “随心步”技能类——SuiXinBuSkill的开发         16.12 游戏提示模块的开发            16.12.1 提示模块抽象类——GameAlert的开发            16.12.2 点击确定按钮显示的信息类——PlainAlert的开发            16.12.3 显示粮草危机信息类——FoodAlert的开发            16.12.4 辅助线程HeroBackDataThread中对FoodAlert的调用         16.13 游戏的优化与改进      

第17章 体育游戏——2D迷你桌球

         17.1 2D桌球的背景及功能概述            17.1.1 游戏背景概述            17.1.2 游戏功能简介         17.2 游戏的策划及准备工作            17.2.1 游戏的策划            17.2.2 Android平台下游戏的准备工作         17.3 游戏的架构            17.3.1 游戏的框架简介            17.3.2 各个类的简要介绍         17.4 公共类的实现            17.4.1 主控制类——GameActivity的代码框架            17.4.2 GameActivity类主要成员变量及方法的实现            17.4.3 常量类——Constant的实现         17.5 辅助界面相关类的实现            17.5.1 欢迎动画界面WelcomeView类的实现            17.5.2 主菜单界面MainMenuView的代码框架            17.5.3 主界面类——MainMenuView部分成员方法的实现            17.5.4 主界面动画线程类ViewDrawThread的实现            17.5.5 排行榜界面HighScoreView的代码框架            17.5.6 HighScoreView类的部分方法的实现         17.6 游戏界面相关类的实现            17.6.1 游戏界面GameView类的代码框架            17.6.2 GameView类部分成员方法的实现            17.6.3 键盘监听线程KeyThread类的实现            17.6.4 球运动的线程BallGoThread类的实现         17.7 情景相关类的实现            17.7.1 球台Table类的实现            17.7.2 桌球Ball类的代码框架            17.7.3 Ball类部分成员方法的实现            17.7.4 球杆Cue类的实现         17.8 自定义控件及工具类的实现            17.8.1 球与球碰撞检测的工具类CollisionUtil的实现            17.8.2 定时器Timer类的实现            17.8.3 主菜单按钮MainMenuButton类的实现            17.8.4 获取日期的工具DateUtil类的实现         17.9 游戏的优化与改进      

第18章 益智游戏——3D魔方

         18.1 游戏背景及功能概述            18.1.1 游戏开发背景概述            18.1.2 游戏功能介绍         18.2 游戏的策划及准备工作            18.2.1 游戏的策划            18.2.2 Android平台下游戏开发的准备工作         18.3 游戏的架构            18.3.1 各个类简要介绍            18.3.2 游戏框架简介         18.4 公共类CubeActivity         18.5 游戏欢迎界面类WelcomeView         18.6 游戏界面相关类            18.6.1 辅助类TextureRect类            18.6.2 魔方控制类CubesControl            18.6.3 魔方正方形绘制类CubeSurfDraw            18.6.4 辅助类FlagDraw            18.6.5 魔方单面颜色信息类Surface            18.6.6 魔方信息类CubeData            18.6.7 单个魔方面类SurfaceGroup            18.6.8 数据常量类Constant            18.6.9 游戏界面类MySurfaceView         18.7 游戏相关线程类            18.7.1 单层旋转动画类RotateThread            18.7.2 游戏帮助类HelpThread            18.7.3 魔方还原动画类ReSetCube            18.7.4 打乱魔方动画类UpsetThread            18.7.5 计时器类TimeThread         18.8 魔方的还原算法工具类ReSetUtil         18.9 游戏的优化与改进      

第19章 物理引擎游戏——盛怒的老鼠

         19.1 游戏背景及功能概述            19.1.1 游戏开发背景            19.1.2 游戏功能概述         19.2 游戏策划及准备工作            19.2.1 游戏策划            19.2.2 游戏开发的准备工作         19.3 游戏的框架            19.3.1 游戏主要用到的技术            19.3.2 游戏各个类的介绍            19.3.3 游戏的基本框架         19.4 公共类            19.4.1 主控制类——MyBox2dActivity            19.4.2 常量类Constant         19.5 主界面的设计与实现            19.5.1 鼠头和猫头类Taj            19.5.2 鼠头和猫头控制线程——TJThread            19.5.3 主界面MainMenuView            19.5.4 刷帧线程MainMenuDrawThread         19.6 工具类            19.6.1 加载及缩放图片的工具类PicLoadUtil            19.6.2 生成刚体工具类Box2DUtil            19.6.3 声音工具类SoundUtil         19.7 刚体相关类            19.7.1 多边形类MyPolygonImg            19.7.2 猫头类BodyCat            19.7.3 冰块类BodyIce            19.7.4 木条类BodyWood            19.7.5 刚体类型枚举类BodyType            19.7.6 刚体查询工具类BodySearchUtil         19.8 游戏界面相关类            19.8.1 皮筋类Pijin            19.8.2 记录分数类Score            19.8.3 刷帧线程DrawThread            19.8.4 游戏界面类GameView         19.9 游戏优化与改进   版权   光盘下载链接第一篇 Android游戏开发核心技术

第1章 Android平台简介

第2章 Android游戏开发中的前台渲染

第3章 Android游戏开发中的交互式通信

第4章 Android游戏开发中的数据存储和传感器

第5章 Android游戏开发中的网络编程

第6章 不一样的游戏,一样的精彩应用

第7章 游戏背后的数学与物理

第8章 游戏地图必知必会

第9章 游戏开发小秘技

第10章 游戏的心脏——物理引擎

第11章 OpenGL ES 3D应用开发基础第1章 Android平台简介

Android是Google公司于2007年11月5日发布的基于Linux内核的移动平台,该平台由操作系统、中间件、用户界面和应用软件组成,是一个真正开放的移动开发平台。

本章将介绍Android系统的起源、特点、应用程序框架以及开发环境的搭建,让读者对Android平台有个初步的了解,之后将开发第一个Android程序Hello Android,并通过对该程序的简单分析,带领读者步入Android开发的大门。

1.1 Android的来龙去脉

Android的创始人Andy Rubin是硅谷著名的“极客”,他离开Danger移动计算公司后不久便创立了Android公司,并开发了Android平台,他一直希望将Android平台打造成完全开放的移动终端平台。之后 Android 公司被 Google 公司看中并将其收购。这样,号称全球最大的搜索服务商Google大举进军移动通信市场,并推出自主品牌的移动终端产品。

2007年11月初,Google正式宣布与其他33家手机厂商、软硬件供应商、手机芯片供应商、移动运营商联合组成开放手机联盟(Open Handset Alliance),并发布名为Android的开放手机软件平台,希望建立标准化、开放式的移动电话软件平台,在移动行业内形成一个开放式的生态系统。

1.2 掀起Android的盖头来

自从Android发布以来,越来越多的人关注Android的发展,越来越多的开发人员在Android系统平台上开发应用,是什么使Android备受青睐,什么使Android在众多移动平台中脱颖而出呢?

1.2.1 选择Android的理由

与其他手机平台上的操作系统相比,Android具有如下优点:

● 开放性;

● 平等性;

● 无界性;

● 方便性;

● 硬件的丰富性。

下面将对以上各个优点进行简单介绍。

1.开放性

提到Android的优势,首先想到的一定是其真正的开放,其开放性包含底层的操作系统以及上层的应用程序等。Google与开放手机联盟合作开发Android的目的就是建立标准化、开放式的移动软件平台,在移动产业内形成一个开放式的生态系统。

Android 的开放性也同样会使大量的程序开发人员投入到 Android 程序的开发中,这将为Android平台带来大量新的应用。

2.平等性

在Android的系统上,所有的应用程序完全平等,系统默认自带的程序与自己开发的程序没有任何区别,程序开发人员可以开发个人喜爱的应用程序来替代系统的程序,构建个性化的Android手机系统,这些功能在其他的手机平台是没有的。

在开发之初,Android 平台就被设计成由一系列应用程序组成的平台,所有的应用程序都运行在一个虚拟机上面。该虚拟机提供了系列应用程序之间和硬件资源通信的API。

3.无界性

Android 平台的无界性表现在应用程序之间的无界,开发人员可以很轻松地将自己开发的程序与其他应用程序进行交互,比如应用程序需要播放声音的模块,而正好你的手机中已经有一个成熟的音乐播放器,此时就不需要再重复开发音乐播放功能,只需简单地加上几行代码即可将成熟的音乐播放功能添加到自己的程序中。

4.方便性

在Android平台中开发应用程序是非常方便的,如果对Android平台比较熟悉,想开发一个功能全面的应用程序并不是什么难事。Android 平台为开发人员提供了大量的实用库及方便的工具,同时也将 Google Map等强大的功能集成了进来,只需简单的几行调用代码即可将强大的地图功能添加到自己的程序中。

5.硬件的丰富性

由于平台的开放,众多的硬件制造商推出了各种各样的产品,但这些产品功能上的差异并不影响数据的同步与软件的兼容,例如,原来在诺基亚手机上的应用程序,可以很轻松地被移植到摩托罗拉手机上使用,且联系人、短信息等资料更是可以方便地转移。

1.2.2 Android的应用程序框架

从软件分层的角度来说,Android平台由应用程序、应用程序框架、Android运行时库层以及Linux内核共4部分构成,本节将分别介绍各层的功能,分层结构如图1-1所示。

▲图1-1 Android平台架构图

1.应用程序层

本层的所有应用程序都是用Java编写的,一般情况下,很多应用程序都是在同一系列的核心应用程序包中一起发布的,主要有拨号程序、浏览器、音乐播放器、通讯录等。该层的程序是完全平等的,开发人员可以任意将Android自带的程序替换成自己的应用程序。

2.应用程序框架层

对于开发人员来说,接触最多的就是应用程序框架层。该应用程序的框架设计简化了组件的重用,其中任何一个应用程序都可以发布自身的功能供其他应用程序调用,这也使用户可以很方便地替换程序的组件而不影响其他模块的使用。当然,这种替换需要遵循框架的安全性限制。

该层主要包含以下9部分,如图1-2所示。

▲图1-2 应用程序框架

● 活动管理(Activity Manager)。用来管理程序的生命周期,以及提供最常用的导航回退功能。

● 窗口管理(Window Manager)。用来管理所有的应用程序窗口。

● 内容供应商(Content Providers)。通过内容供应商,可以使一个应用程序访问另一个应用程序的数据,或者共享数据。

● 视图系统(View System)。用来构建应用程序的基本组件,包括列表、网格、按钮、文本框,甚至是可嵌入的Web浏览器。

● 包管理(Package Manager):用来管理Android系统内的程序。

● 电话管理(Telephony Manager)。所有的移动设备的功能统一归电话管理器管理。

● 资源管理(Resource Manager)。资源管理器可以为应用程序提供所需要的资源,包括图片、文本、声音、本地字符串,甚至是布局文件。

● 位置管理(Location Manager)。该管理器是用来提供位置服务的,如GPRS定位等。

● 通知管理(Notification Manager)。主要对手机顶部状态栏的管理,开发人员在开发Android程序时会经常使用,如来短信提示、电量低提示,还有后台运行程序的提示等。

3.Android运行时库

该层包含两部分,程序库及Android运行时库。

程序库为一些C/C++库,这些库能够被Android系统中不同的应用程序调用,并通过应用程序框架为开发者提供服务。而Android运行时库包含了Java编程语言核心库的大部分功能,提供了程序运行时所需调用的功能函数。

程序库主要包含的功能库如图1-3所示。

● libc。是一个从BSD继承来的标准C系统函数库,专门针对移动设备优化过的。

● Media Framework。基于PacketVideo公司的OpenCORE。支持多种常用音频、视频格式回放和录制,并支持多种图像文件,如MPEG-4、H.264、MP3、AAC、AMR、JPG、PNG等。

● Surface Manager。Surface Manager主要管理多个应用程序同时执行时,各个程序之间的显示与存取,并且为多个应用程序提供了2D和3D图层无缝的融合。

● SQLite。所有应用程序都可以使用的轻量级关系型数据库引擎。

● WebKit。是一套最新的网页浏览器引擎。同时支持Android浏览器和一个可嵌入的Web视图。

● OpenGLIES。是基于OpenGL ES 1.0 API标准来实现的 3D绘制函数库。该函数库支持软件和硬件两种加速方式执行。

● FreeType。提供位图(bitmap)和矢量图(vector)两种字体显示。

● SGL。提供了2D图形绘制的引擎。

Android运行时库包括核心库及Dalivik虚拟机,如图1-4所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载