Android游戏编程之从零开始.pdf

Android游戏编程之从零开始.pdf
 

书籍描述

编辑推荐
《Android游戏编程之从零开始》非常出色,简明易懂,内容也妙趣横生。书中既恰到好处地讲解了Android独有的特性,又突出了高质量游戏编程的原则。它不仅重点讲解了游戏编程技术,还融入了作者李华明多年游戏开发的经验,同时涉及了应用软件开发技术。不管你是应用软件开发人员还是游戏开发人员,无论你是初学者还是经验丰富的程序员,《Android游戏编程之从零开始》值得所有Android开发人员拥有。

名人推荐
李华明是Android游戏开发的行家里手,他将他多年的游戏开发经验毫无保留地奉献出来。本书内容丰富,浅显易懂,作者手把手地教你写程序代码;由浅入深地带你从入门到精通。本书值得拥有。
——八月印象(北京)科技有限公司总经理 王雨朦
这本书无论从基础知识还是实际案例,都较为详细地介绍了Android框架和相关的游戏架构,使人们从一无所知到能够开发实际的游戏程序。可以说是一本内容完善,详细到位的好书,在此推荐给大家。同时也祝愿在游戏设计领域追逐梦想的程序员们,都能通过本书实现自己的游戏开发梦想!
——游戏源游戏开发培训学院项目总监、资深3D图形开发专家 黄睿
这本书非常出色,简明易懂,内容也妙趣横生。书中既恰到好处地讲解了Android独有的特性,又突出了高质量游戏编程的原则。它不仅重点讲解了游戏编程技术,还融入了作者多年游戏开发的经验,同时涉及了应用软件开发技术。不管你是应用软件开发人员还是游戏开发人员,无论你是初学者还是经验丰富的程序员。本书值得所有Android开发人员拥有。
——广东漫龙动漫培训学校院长 裴钧科
本书是我见到的为数不多的、从Java基础到游戏高级编程步步进阶的游戏开发好书。在书中,您不仅能学习到游戏开发的基础知识,还将学习到如何编写高质量、高效率的程序代码。
——广州奥兹软件科技有限公司Android项目经理 方莫吉
作为一个游戏开发平台(任天堂,Playstation 3.XBOX 360.PC.iphone)的开发者,我很开心获知此书将作为游戏源唯一指定Android游戏开发专业教材并即将出版。对于每一位即将进入游戏行业的年轻人来说,这里是你们的起点,你们将要面临今后重大的考验。对于现在迷茫的你来说,这本书是最好的入门书籍。有了这份基础,你才拥有轻松驾驭游戏程序开发的本钱。唯有这份基础,令你胸中自有丘壑。一本好书会使你享受一生!
——加拿大加寰国际网络科技(北京)有限公司项目经理、资深游戏开发工程师 张浩然

目录
第1章 Android平台介绍与环境搭建
1.1 Android平台简介/2
1.1.1Android操作系统平台的优势和趋势/2
1.1.2AndroidSDK与AndroidNDK/2
1.2 Android开发环境的搭建/3
1.2.1搭配环境前的准备工作/3
1.2.2安装和配置环境/6
1.2.3SDK版本更新/11
1.3 本章小节/13
第2章 Hello,Android!
2.1 创建第一个Android项目/15
2.2 剖析AndroidProject结构/16
2.3 AndroidManifest.xml与应用程序功能组件/20
2.3.1AndroidManifest的xml语法层次/20
2.3.2 —Activity(活动)/21
2.3.3 —Intent(意图)与BroacastReceiver(广播接收)/21
2.3.4 —服务/22
2.3.5 —ContentProvider(内容提供者)/22
2.4 运行Android项目(启动Android模拟器)/23
2.5 详解第一个Android项目源码/25
2.6 Activity生命周期/28
2.6.1单个Activity的生命周期/28
2.6.2多个Activity的生命周期/32
2.6.3AndroidOS管理Activity的方式/34
2.7 Android开发常见问题/34
2.7.1AndroidSDK与GoogleAPIs创建Emulator的区别/34
2.7.2将Android项目导入Eclipse/35
2.7.3在Eclipse中显示Android开发环境下常用的View窗口/37
2.7.4在Eclipse中利用打印语句(Log)调试Android程序/38
2.7.5在Eclipse中真机运行Android项目/39
2.7.6设置AndroidEmulator模拟器系统语言为中文/39
2.7.7切换模拟器的输入法/39
2.7.8模拟器中创建SDCard/40
2.7.9模拟器横竖屏切换/40
2.7.10打包Android项目/40
2.8 本章小结/45
第3章 Android游戏开发常用的系统控件
3.1 Button/47
3.2 Layout/52
3.2.1线性布局/52
3.2.2相对布局/57
3.2.3表格布局/62
3.2.4绝对布局/66
3.2.5单帧布局/68
3.2.6可视化编写布局/70
3.3 ImageButton/71
3.4 EditText/74
3.5 CheckBox/76
3.6 RadioButton/79
3.7 ProgressBar/82
3.8 SeekBar/85
3.9 TabSpec与TabHost/87
3.10 ListView/91
3.10.1ListView使用ArrayAdapter适配器/91
3.10.2ListView使用SimpleAdapter适配器的扩展列表/93
3.10.3为ListView自定义适配器/96
3.11 Dialog/100
3.12 系统控件常见问题/105
3.12.1Android中常用的计量单位/105
3.12.2Context/106
3.12.3Resources与getResources/107
3.12.4findViewById与LayoutInflater/107
3.12.5多个Activity之间跳转/退出/传递数据操作/108
3.12.6横竖屏切换处理的三种方式/112
3.13 本章小结/114
第4章 游戏开发基础
4.1 如何快速的进入Android游戏开发/116
4.2 游戏的简单概括/118
4.3 Android游戏开发中常用的三种视图/118
4.4 View游戏框架/119
4.4.1绘图函数onDraw/122
4.4.2按键监听/124
4.4.3触屏监听/128
4.5 SurfaceView游戏框架/130
4.5.1SurfaceView游戏框架实例/130
4.5.2刷屏的方式/135
4.5.3SurfaceView视图添加线程/136
4.6 View与SurfaceView的区别/142
4.7 Canvas画布/143
4.8 Paint画笔/148
4.9 Bitmap位图的渲染与操作/151
4.10 剪切区域/162
4.11 动画/168
4.11.1Animation动画/168
4.11.2自定义动画/173
4.12 游戏适屏的简述与作用/179
4.13 让游戏主角动起来/181
4.14 碰撞检测/187
4.14.1矩形碰撞/188
4.14.2圆形碰撞/190
4.14.3像素碰撞/192
4.14.4多矩形碰撞/193
4.14.5Region碰撞检测/196
4.15 游戏音乐与音效/198
4.15.1MediaPlayer/198
4.15.2SoundPool/203
4.15.3MediaPlayer与SoundPool优劣分析/207
4.16 游戏数据存储/207
4.16.1SharedPreference/208
4.16.2流文件存储/212
4.16.3SQLite/218
4.17 本章小结/219
第5章 游戏开发实战演练
5.1 项目前的准备工作/221
5.2 划分游戏状态/222
5.3 游戏初始化(菜单界面)/224
5.4 游戏界面/229
5.4.1实现滚动的背景图/230
5.4.2实现主角以及与主角相关的元素/231
5.4.3怪物(敌机)类的实现/236
5.5 游戏胜利与结束界面/260
5.6 游戏细节处理/261
5.6.1游戏Back返回键处理/261
5.6.2为游戏设置背景常亮/262
5.7 本章小结/262
第6章 游戏开发提高篇
6.1 360°平滑游戏导航摇杆/264
6.2 多触点实现图片缩放/268
6.3 触屏手势识别/270
6.4 加速度传感器/274
6.5 9patch工具的使用/278
6.6 代码实现截屏功能/283
6.7 效率检视工具/285
6.8 游戏视图与系统组件共同显示/288
6.9 蓝牙对战游戏/290
6.10 网络游戏开发基础/307
6.10.1Socket/308
6.10.2Http/313
6.11 本地化与国际化/317
6.12 本章小结/320
第7章 Box2D物理引擎
7.1 Box2D概述/322
7.2 将Box2D类库导入Android项目中/322
7.3 物理世界与手机屏幕坐标系之间的关系/324
7.4 创建Box2D物理世界/325
7.5 创建矩形物体/327
7.6 让物体在屏幕中展现/329
7.7 创建自定义多边形物体/330
7.8 物理世界中的物体角度/331
7.9 创建圆形物体/332
7.10 多个Body的数据赋值/333
7.10.1遍历Body/333
7.10.2自定义类关联Body/335
7.11 设置Body坐标与给Body施加力/338
7.11.1手动设置Body的坐标/338
7.11.2给Body施加力/338
7.12 Body碰撞监听、筛选与Body传感器/341
7.12.1Body碰撞接触点监听/341
7.12.2Body碰撞筛选/342
7.13 关节/346
7.13.1距离关节/346
7.13.2旋转关节/348
7.13.3齿轮关节/349
7.13.4滑轮关节/351
7.13.5移动关节/353
7.13.6鼠标关节/356
7.14 通过AABB获取Body/358
7.15 物体与关节的销毁/360
7.16 本章小结/361
第8章 Box2D物理游戏实战
8.1 迷宫小球游戏实战/363
8.2 堆房子游戏实战/382
8.3 本章小结/392

文摘
版权页:

Android游戏编程之从零开始

插图:

Android游戏编程之从零开始

(2)设置物理世界的重力向量(gravity),其两个参数在这里分别表示物理世界中的X轴与Y轴方向上的重力数值,其值的“+” “—”号在这里表示X与Y轴的重力方向,X轴正值表示向右,Y轴正值表示向下;因为是模拟真实世界,所以这里的X重力向量设置为零,Y轴方向设置为现实生活中的重力值:10(可以理解为10N)。
刚才的一段代码就已经创建了一个物理世界,但只是定义了物理世界,并没有开始进行物理模拟,所以还需要world设置物理模拟:
world,step(float timeStep,int iterations);
此函数表示让物理世界开始进行物理模拟,其两个参数含义如下:
第一个参数:表示(时间步)物理世界模拟的频率;
第二个参数:表示(迭代值)迭代值越大模拟越精确,但性能越低。
这里要注意以下几点:
①因为物理世界模拟具有持续性,所以应该将设置放在线程中,不断的让物理世界进行模拟。
②时间步:应该与游戏的刷新率相同,否則物理世界模拟将不同步。
③迭代值:可以理解为在单次时间步中进行遍历模拟运算数据的次数。
④在Box2D中最常使用的单位是float浮点数类型,作者刚接触Box2D时,在定义物理世界模拟频率时,写成了以下错误的形式:
float timeStep=1/60;
这样写导致物理世界的物体永远不运动,其原因就是“1/60”的值永远是零!所以正确书写形式应该是:
float timeStep=If/60f;
到此一个物理世界真正的创建出来并且进行模拟了,但是因为物理世界中并没有放置任何的物体,所以运行项目在视觉中将看不到任何的效果,下面的章节中将开始在物理世界中创建物体。
作者推荐物理模拟的频率一般设为每秒60帧,迭代设为10,具体设置根据应用和设备性能情况而定。
在后续创建物体和关节的章节中,很多代码需要传入以“米”作为单位的数值,所以为了便于转换,可以定义一个成员变量。

内容简介
《Android游戏编程之从零开始》主要系统地讲解了Android游戏开发,从最基础部分开始,让零基础的Android初学者也能快速学习和掌握Android游戏开发。《Android游戏编程之从零开始》一共8章,内容包括Android平台介绍与环境搭建、Hello,Android!项目剖析、游戏开发中常用的系统组件、游戏开发基础、游戏开发实战、游戏开发提高篇、Box2d物理引擎、物理游戏实战。随书光盘包括全书65个项目源代码。《Android游戏编程之从零开始》适合Android游戏开发的初学者使用,也适合作为Android游戏培训的教材和高校游戏专业师生的参考书。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多