第一篇 基础篇第1章 手机游戏概述 3
1.1 手机游戏概述 3
1.2 手机游戏类型 3
1.2.1 短信类游戏 3
1.2.2 WAP游戏 4
1.2.3 IVR游戏 4
1.2.4 图形程序类游戏 5
1.3 手机游戏发展现状 11
1.3.1 手机游戏市场现状 11
1.3.2 手机游戏发展趋势 11
1.4 手机游戏开发平台 11
1.4.1 Symbian概述 12
1.4.2 Windows Mobile概述 12
1.4.3 BREW概述 13
1.4.4 J2ME概述 13
1.5 本章思考 14
第2章 Java编程基础 15
2.1 程序和程序设计语言 15
2.1.1 程序设计机器语言 15
2.1.2 程序设计汇编语言 16
2.1.3 程序设计高级语言 16
2.2 用Java语言进行程序开发 17
2.2.1 构建Java运行环境 17
2.2.2 第一个Java程序 19
2.3 Java语言规则 22
2.3.1 Java语言注释语句 22
2.3.2 Java语言标识符和关键词 22
2.3.3 Java语言变量和基本数据类型 23
2.3.4 Java语言运算符和表达式 26
2.3.5 Java语言数据类型转换 28
2.3.6 基本输入输出 29
2.3.7 Java数据语言结构化程序设计 30
2.4 Java常用编程环境介绍 35
2.4.1 使用Eclipse编写Java桌面程序 35
2.4.2 使用JBuilder编写Java桌面程序 38
2.5 Java语言的类和对象 40
2.5.1 Java对象实例 41
2.5.2 Java对象成员属性 41
2.5.3 new操作符 41
2.5.4 点操作符 42
2.5.5 Java成员方法定义 43
2.5.6 Java成员方法调用 43
2.5.7 this关键词 44
2.5.8 Java构造方法 44
2.5.9 重载 45
2.5.10 继承 46
2.5.11 super关键词 47
2.5.12 成员方法的覆盖 47
2.5.13 final关键词 48
2.5.14 静态 48
2.5.15 抽象 49
2.6 Java中接口与包 52
2.6.1 接口 52
2.6.2 包(Packages) 53
2.7 Java异常处理 54
2.7.1 异常基础 55
2.7.2 异常类型 55
2.7.3 try与catch 56
2.7.4 throw语句 57
2.7.5 finally语句 58
2.8 Java字符、字符串与数组 59
2.8.1 Character类 59
2.8.2 Java中字符串处理 61
2.8.3 Java中数组处理 65
2.9 Java中文件处理 67
2.10 Java线程处理 69
2.10.1 多任务处理 69
2.10.2 Java多线程实现过程 69
2.10.3 Java中联合线程实现 71
2.10.4 生命周期 72
2.10.5 线程同步 73
2.11 Java语言编程规范 73
2.11.1 Java文件规范 73
2.11.2 文件组织 74
2.11.3 Java代码中缩进排版 74
2.11.4 Java程序语句注释 75
2.11.5 Java变量声明 77
2.11.6 Java语句 78
2.11.7 Java中空格处理 80
2.11.8 Java命名规范 81
2.11.9 良好的编程规范 82
2.11.10 Java代码范例 83
2.12 本章思考 84
第二篇 技术篇第3章 J2ME MIDP 1.0开发技术 87
3.1 J2ME概述 87
3.1.1 J2ME基本概念 88
3.1.2 搭建J2ME开发平台 92
3.1.3 J2ME程序的生命周期 95
3.1.4 第一个J2ME程序 97
3.1.5 J2ME体系结构 98
3.1.6 MIDlet的部署 100
3.1.7 访问JAR/JAD属性 103
3.2 J2ME集成开发环境 104
3.2.1 使用Eclipse搭建J2ME开发环境 104
3.2.2 使用JBuilder搭建J2ME开发环境 108
3.3 MIDP高层窗口设计 115
3.3.1 MIDP用户界面 115
3.3.2 MIDP 1.0中高级用户界面设计 119
3.3.3 MIDP 1.0中手机功能键的处理 120
3.3.4 TextBox实现文字输入 122
3.3.5 Alert实现消息提示 124
3.3.6 List实现游戏单选Choice接口 127
3.3.7 Form容器 130
3.3.8 Ticker实现滚动文字 136
3.4 MIDP底层窗口设计 138
3.4.1 底层窗口类Canvas 138
3.4.2 使用绘图对象Graphics 139
3.4.3 用MIDP 1.0开发游戏时的字体设置 145
3.4.4 用MIDP 1.0在底层屏幕中处理任意手机按键 147
3.5 用MIDP在底层屏幕中实现游戏动画 149
3.5.1 使用线程实现游戏动画 149
3.5.2 在J2ME中通过双缓冲技术实现动画 150
3.5.3 在J2ME中使用定时器实现游戏动画 152
3.5.4 使用setClip方法实现动画 154
3.6 J2ME中游戏进度的保存 156
3.6.1 MIDP记录管理系统 156
3.6.2 MIDP访问记录仓库 157
3.6.3 MIDP基本记录处理方法 160
3.6.4 MIDP中使用记录仓库实现游戏中最高分 161
3.6.5 MIDP记录的高级处理 164
3.6.6 游戏中的数据存取范例 170
3.7 本章思考 172
第4章 Nokia平台手机游戏开发技术 173
4.1 Nokia平台的安装 173
4.2 Nokia UI API 175
4.2.1 Nokia API简介 176
4.2.2 MIDP中实现全屏幕模式 176
4.2.3 MIDP绘制三角形和多边形 177
4.2.4 MIDP图形转换 178
4.2.5 MIDP图形透明性 178
4.3 Nokia音效处理 180
4.3.1 播放单音 180
4.3.2 播放音乐 180
4.3.3 SoundListeners接口 181
4.3.4 音量控制 182
4.4 其他新增功能 182
4.5 Nokia手机游戏开发 183
4.5.1 游戏动作(Action)的使用 183
4.5.2 实现变换游戏外壳和游戏动作 185
4.5.3 同时按键的实现 185
4.5.4 MIDlet国际化 185
4.5.5 实现设备无关性 186
4.6 本章思考 186
第三篇 实战篇第5章 手机游戏开发规范 189
5.1 手机游戏运营商对开发者的要求 189
5.1.1 开发工具的选择 189
5.1.2 手机游戏程序编写 189
5.1.3 内存类型的选择 190
5.1.4 User-Agent 190
5.1.5 JAD文件格式 191
5.1.6 手机游戏开发界面的要求 192
5.1.7 MIDlet标准 194
5.1.8 手机游戏终端策略 194
5.2 常见机型界面参数 194
5.3 手机游戏开发按键要求 196
5.4 本章思考 197
第6章 手机游戏策划与像素画设计 198
6.1 手机游戏设计原则 198
6.1.1 与传统游戏开发的区别 198
6.1.2 用户需求 199
6.1.3 手机作为游戏平台的特殊性 200
6.1.4 手机游戏设计遵循的规则 202
6.2 手机游戏策划 203
6.2.1 手机游戏策划案 203
6.2.2 手机游戏策划实例 208
6.3 手机游戏像素画设计技巧 230
6.3.1 像素画概述 230
6.3.2 像素画应用 231
6.3.3 像素画造形技术 232
6.3.4 像素画过渡技术 239
6.3.5 像素画设计实例 241
6.4 本章思考 242
第7章 完整游戏项目实例设计 243
7.1 概述 243
7.1.1 故事背景 243
7.1.2 游戏特点 244
7.1.3 游戏规则 244
7.1.4 手机游戏按键规则设计 244
7.1.5 手机游戏进程管理 244
7.1.6 游戏开发流程图 246
7.2 手机游戏数据设计 247
7.2.1 速度特点 247
7.2.2 主角数据设计 247
7.2.3 NPC(非玩家控制角色)数据设计 247
7.3 手机游戏关卡设计 249
7.3.1 关卡概述 249
7.3.2 关卡详述 249
7.4 手机游戏美术设计 250
7.4.1 美术概述 250
7.4.2 美术设定 250
7.4.3 像素图像列表 251
7.5 程序实现 252
7.5.1 准备工作 252
7.5.2 规划屏幕对象 253
7.5.3 手机游戏窗口之间的跳转 256
7.5.4 J2ME框架的实现 258
7.5.5 J2ME时间控制及图像绘制 262
7.6 本章小结 275
7.7 本章思考 275
第8章 益智类(PUZ)游戏——《疯狂扫雷》的实现 276
8.1 益智类游戏开发需求 276
8.1.1 解决“雷区”的显示 276
8.1.2 解决用户的控制 277
8.1.3 解决扫雷的逻辑 277
8.2 J2ME详细设计、编码、调试 278
8.3 本章思考 283
第9章 射击类(FPS)游戏——《异度风暴》的实现 284
9.1 射击类游戏开发需求 284
9.1.1 概述 284
9.1.2 游戏界面设计 284
9.1.3 游戏按键设计 286
9.1.4 游戏属性设置 286
9.1.5 游戏元素设置 287
9.1.6 游戏机制设计 290
9.2 像素图准备和程序实现 294
9.2.1 游戏背景滚轴的实现 305
9.2.2 游戏角色飞行的实现 306
9.2.3 使用定时器和向量实现子弹效果 307
9.3 本章思考 307
第10章 动作类(ACT)游戏——《都市历险记》的实现 308
10.1 动作类游戏开发需求 308
10.2 像素图准备 310
10.3 动态游戏菜单设计 311
10.4 地图编辑器和游戏地图的实现 313
10.4.1 使用地图编辑器创建地图文件 314
10.4.2 使用地图编辑器导出地图数组 314
10.4.3 使用J2SE将地图数组转化为字节文件 314
10.4.4 在J2ME项目中导入地图文件 315
10.4.5 用J2ME在游戏中绘制地图 316
10.5 处理人物的跳跃和碰撞 317
10.6 本章思考 321
第11章 角色扮演类(RPG)游戏——《六指琴魔》的实现 322
11.1 角色扮演类游戏开发需求 322
11.1.1 应用介绍 322
11.1.2 游戏流程 322
11.2 像素图准备 323
11.3 RPG游戏地图的实现与优化 324
11.4 RPG游戏人物的实现 328
11.5 RPG游戏对话的实现 334
11.6 J2ME中场景切换的实现 335
11.7 本章思考 335
第四篇 JTWI开发技术和3G手机网络游戏篇第12章 JTWI标准与MIDP 2.0技术 339
12.1 JTWI技术介绍 339
12.2 MIDP 2.0新增功能 340
12.2.1 MIDP 2.0 Game API详解 340
12.2.2 MIDP 2.0中GameCanvas的使用 341
12.2.3 MIDP 2.0中Layer类的使用 344
12.2.4 MIDP 2.0中LayerManager类 345
12.2.5 MIDP 2.0中Sprite类 346
12.2.6 MIDP 2.0中使用Sprite实现《小猫钓鱼》 352
12.2.7 MIDP 2.0开发游戏中的分块图层TiledLayer 355
12.3 用MMAPI实现游戏中声音的播放 360
12.3.1 Mobile Media API的基本概念 360
12.3.2 MMAPI中createPlayer方法的使用 360
12.3.3 MIDP 2.0游戏开发应用实例 361
12.4 MIDP 2.0中WMA包的应用 363
12.5 用MMAPI实现拍照 364
12.5.1 开发MMAPI应用程序的工具 364
12.5.2 MMAPI获取照相机技术 365
12.5.3 MIDP 2.0显示相机视频技术 365
12.5.4 MIDP 2.0实现拍照 366
12.5.5 MIDP 2.0创建微缩图 366
12.6 在MIDP 2.0中操作图片像素 367
12.6.1 MIDP 2.0透明度渐变效果的实现 367
12.6.2 用MIDP 2.0实现颜色反转 369
12.7 MIDP 2.0 Push Registry技术 371
12.7.1 MIDP 2.0中Push Registry原理 371
12.7.2 Push Registry的注册方式 372
12.7.3 Push Registry的安全性 372
12.7.4 Push Registry的使用 373
12.8 3D手机游戏开发 380
12.8.1 Mobile 3D Graphics技术 380
12.8.2 M3G API介绍 381
12.9 3D综合游戏《弹球》的实现 389
12.9.1 游戏操作 389
12.9.2 摄像机和视点 390
12.9.3 3D空间中对象移动的实现 391
12.9.4 M3G中碰撞的实现 391
12.9.5 3D中实现自由运动的小球 393
12.9.6 3D中实现游戏循环 396
12.10 本章思考 410
第13章 J2ME网络编程与网络游戏的实现 411
13.1 通用连接框架(GCF)概述 411
13.1.1 通用框架结构 412
13.1.2 GCF体系结构 412
13.1.3 MIDP中建立网络连接方式 413
13.1.4 HTTP协议 413
13.1.5 HTTP服务器搭建 414
13.1.6 HTTPConnection接口 415
13.1.7 HTTPConnection的连接步骤 415
13.1.8 HTTP协议的程序实现 416
13.1.9 J2ME中实现连接属性的获取和修改 418
13.1.10 用MIDP实现Socket接口 419
13.1.11 J2ME中实现客户端Socket 420
13.1.12 J2ME中实现服务端Socket 421
13.1.13 J2ME中解决网络中文问题 422
13.1.14 其他通信技术 422
13.2 J2ME无线网络游戏开发技术 424
13.2.1 无线网络游戏架构 424
13.2.2 J2ME实现服务器端技术 426
13.2.3 基于HTTP的用户登录系统实现 426
13.2.4 J2ME实现商品竞猜网络游戏 429
13.3 使用Socket实现大型无线网络社区游戏实例 433
13.3.1 功能模块 434
13.3.2 菜单规则设计 440
13.3.3 服务器端实现 456
13.3.4 客户端实现 481
13.4 本章思考 560
第五篇 产品优化和发布篇第14章 手机游戏的移植及优化 563
14.1 手机游戏移植技术 563
14.1.1 规化屏幕尺寸 563
14.1.2 解决按键值 563
14.1.3 解决内存占用 564
14.1.4 解决不同的API技术 564
14.1.5 解决文字问题 565
14.1.6 解决声音问题 566
14.1.7 解决图标问题 566
14.1.8 移植到中国台湾地区的游戏 567
14.2 手机游戏优化技术 567
14.2.1 低级优化技术 567
14.2.2 高级优化技术 573
14.3 测试技术 574
14.3.1 测试的重要性 574
14.3.2 手机游戏测试的内容和流程 575
14.4 本章思考 576
第15章 手机游戏的商业发布 577
15.1 运营前的准备 577
15.1.1 游戏文档 577
15.1.2 游戏截图 580
15.1.3 游戏视频 580
15.2 游戏销售 580
15.2.1 销售方式 580
15.2.2 合作协议 580
15.3 本章思考 580