第1章 手机游戏简介 1
1.1 手机游戏概述 1
1.1.1 手机游戏产业发展现状 1
1.1.2 手机游戏分类 2
1.2 手机游戏开发的特点 7
1.2.1 手机游戏与PC游戏的区别 7
1.2.2 手机游戏的优势 7
1.2.3 手机设备的局限 8
1.2.4 手机游戏的推广渠道 8
1.2.5 手机游戏的盈利模式 9
1.3 手机游戏策划 9
1.3.1 手机游戏策划的概念 9
1.3.2 手机游戏策划过程 11
小结 13
思考题 13
第2章 J2ME简介和编程环境 14
2.1 J2ME简介 14
2.2 J2ME平台体系结构 14
2.2.1 体系结构概述 15
2.2.2 J2ME总体结构 16
2.2.3 配置层 17
2.2.4 简表层 19
2.3 MIDlet 20
2.3.1 MIDlet概述 20
2.3.2 MIDlet的生命周期 22
2.3.3 MIDlet Suite 22
2.3.4 MIDlet的执行环境 25
2.4 编程环境 25
2.4.1 Java开发工具包 25
2.4.2 使用Java开发环境 27
2.4.3 IDE的安装和使用 31
2.4.4 WTK 37
2.4.5 WTK的安装 38
2.4.6 EclipseME 42
2.4.7 EclipseME插件的安装 43
2.4.8 EclipseME插件的配置 47
小结 50
思考题 50
第3章 高级用户界面 51
3.1 高级用户界面概述 51
3.1.1 LCDUI包 51
3.1.2 高级用户界面的类结构 52
3.1.3 Display和Displayable类 53
3.2 Command类与高级事件处理 54
3.2.1 Command类 54
3.2.2 高级事件处理 55
3.3 高级界面类 56
3.3.1 Screen类 56
3.3.2 TextBox组件 57
3.3.3 List组件 58
3.3.4 Alert组件 62
3.4 屏幕表单(Form类)及其组件 65
3.4.1 Form类 65
3.4.2 Item类和Item状态监听 67
小结 77
思考题 77
第4章 低级用户界面 78
4.1 Canvas类 78
4.1.1 Canvas类概述 78
4.1.2 Canvas的布局 79
4.1.3 绘制屏幕 80
4.1.4 重绘屏幕 81
4.1.5 用户交互 83
4.2 Graphics类 89
4.2.1 Graphics类概述 89
4.2.2 Graphics类的坐标系 89
4.2.3 画笔的风格和颜色 90
4.2.4 Graphics类的图形绘制 91
4.2.5 文字显示 99
4.2.6 图像绘制 102
4.3 动画实现 110
4.3.1 动画原理 110
4.3.2 线程动画 110
4.3.3 双缓冲技术 115
4.4 MIDP 1.0应用实例 118
小结 124
思考题 124
第5章 数据存储 125
5.1 RM S概述 125
5.2 记录存储管理 126
5.2.1 记录仓库的打开与创建 126
5.2.2 记录仓库的关闭 127
5.2.3 记录仓库的其他操作 128
5.3 记录仓库的基本操作 129
5.3.1 添加记录 129
5.3.2 获取记录 131
5.3.3 修改记录 132
5.3.4 删除记录 133
5.4 记录仓库的高级操作 133
5.4.1 遍历记录 133
5.4.2 过滤记录 135
5.4.3 排序记录 136
5.4.4 RecordEnumeration与RecordStore的同步 138
5.4.5 线程操作问题 138
5.4.6 监视记录变化 139
小结 139
思考题 140
第6章 MIDP 2.0开发 141
6.1 MIDP 2.0简介 141
6.1.1 MIDP 2.0和MIDP 1.0的区别 141
6.1.2 game包的结构 141
6.1.3 game包中的类 142
6.2 GameCanvas类的使用 142
6.2.1 GameCanvas类 142
6.2.2 缓冲区屏幕 143
6.2.3 查询游戏按键状态 144
6.2.4 MIDP 2.0下的游戏主循环 146
6.3 Layer类 146
6.4 Sprite类 147
6.4.1 Sprite类介绍 147
6.4.2 Sprite帧概念 147
6.4.3 Sprite的帧序列 149
6.4.4 创建精灵对象 149
6.4.5 绘制精灵对象 150
6.4.6 参考像素点 150
6.4.7 精灵对象的变换 153
6.4.8 碰撞检测 156
6.5 TiledLayer类 157
6.5.1 图像贴图 157
6.5.2 单元格 158
6.5.3 TiledLayer用法示例 160
6.5.4 精灵与地图的碰撞 166
6.6 LayerManager类 168
6.6.1 图层管理 169
6.6.2 可视窗口与渲染 169
6.6.3 精灵与TiledLayer的碰撞 174
6.7 MIDP 2.0应用实例 175
小结 183
思考题 183
第7章 网络与多媒体 184
7.1 GCF概述 184
7.2 GCF的层次结构 184
7.3 GCF的使用 185
7.4 MIDP的HTTP连接 186
7.4.1 HTTP连接简介 186
7.4.2 HTTP相关协议 187
7.4.3 HTTP的请求/应答模型 187
7.4.4 在MIDP中使用HTTP连接 190
7.4.5 使用HTTP来访问网络实例 191
7.5 Socket连接 192
7.5.1 客户端Socket 192
7.5.2 服务端Socket 196
7.6 Datagram连接 198
7.6.1 Datagram与Socket的差别 199
7.6.2 发送数据报 200
7.6.3 接收数据报 201
7.7 CMNET和CMWAP的通信方式 201
7.8 MMAPI编程 203
7.8.1 MMAPI概述 203
7.8.2 MMAPI特性 203
7.8.3 MMAPI体系结构 204
7.8.4 MMAPI包 206
7.8.5 MMAPI包的使用 208
小结 213
思考题 213
第8章 益智动作游戏——夏日大冒险 214
8.1 游戏策划和准备工作 214
8.1.1 游戏策划分析 214
8.1.2 游戏需求和准备工作 214
8.2 游戏架构 217
8.2.1 游戏的类结构 217
8.2.2 用户界面流程 217
8.2.3 文件结构 218
8.3 游戏关键技术和实现 219
8.3.1 闪屏Logo类 219
8.3.2 MyCanvas主类 222
8.3.3 Music音乐类 239
8.3.4 Map地图类 241
8.3.5 关卡 243
8.4 兼容性设计 246
小结 247
思考题 247
第9章 飞机射击游戏——雷霆战机 248
9.1 游戏策划和准备工作 248
9.1.1 游戏策划分析 248
9.1.2 游戏准备工作 249
9.2 游戏设计 250
9.2.1 游戏架构设计 250
9.2.2 用户界面流程 251
9.2.3 游戏设计的关键问题 252
9.3 游戏关键技术实现 252
9.3.1 MIDlet子类的实现 252
9.3.2 手机游戏的主框架实现 253
9.3.3 游戏地图的绘制 256
9.3.4 游戏中的主要角色类 260
9.3.5 控制游戏对象 277
9.3.6 碰撞检测 278
9.3.7 保存信息及读取信息 282
9.3.8 音效的处理 283
9.4 打包生成 284
9.4.1 打包生成jar文件 284
9.4.2 下载到手机 286
9.5 J2ME游戏的优化和注意事项 286
9.5.1 J2ME游戏的优化 286
9.5.2 注意事项 287
小结 288
思考题 288
第10章 角色扮演游戏——桃花园记 289
10.1 游戏策划及准备工作 289
10.1.1 游戏策划分析 289
10.1.2 游戏需求以及准备工作 289
10.2 游戏架构 292
10.2.1 游戏的类结构 292
10.2.2 游戏界面流程 292
10.2.3 游戏规则 293
10.3 游戏关键技术及实现 294
10.3.1 游戏画布MyCanvas类的实现 294
10.3.2 MyMap地图类的实现 312
10.3.3 MySprite精灵类的实现 314
10.3.4 角色排序 316
10.3.5 玩家与精灵类的通信 316
10.3.6 敌人的人工智能 317
10.3.7 游戏音乐实现 319
小结 320
思考题 320
第11章 休闲益智游戏——推推侠 321
11.1 游戏策划和准备工作 321
11.1.1 游戏策划分析 321
11.1.2 游戏准备工作 322
11.2 游戏架构 323
11.2.1 游戏的类结构 323
11.2.2 用户界面流程 324
11.3 游戏关键技术实现 325
11.3.1 GameMidlet类 325
11.3.2 GameData接口 326
11.3.3 GamePlayer玩家类 326
11.3.4 GameTools类 327
11.3.5 MyGameCanvas主画布类 328
11.3.6 GameMap地图类 339
11.3.7 GameMusic音乐类 342
11.3.8 GameNpc怪物类 343
小结 346
思考题 346
第12章 横版过关类游戏——帝企鹅日记 347
12.1 游戏策划和准备工作 347
12.1.1 游戏策划分析 347
12.1.2 游戏需求和准备工作 347
12.2 游戏架构 348
12.2.1 游戏的类结构 348
12.2.2 用户界面流程 349
12.3 游戏关键技术及实现 350
12.3.1 游戏画布MyCanvas类的实现 350
12.3.2 游戏Sprite类及子类的实现 352
12.3.3 游戏Game类的实现 361
12.3.4 游戏TilesEngine类的实现 372
小结 380
附录 横动作编辑器的使用 381