第一章 感性认知 1
1.1 手机游戏与传统电子游戏的区别 1
1.2 手机设备的优势和局限 2
1.2.1 你不可不知的三大优势 2
1.2.2 六个局限 3
1.3 如何扬长避短 4
1.4 开发手机游戏的一些错误观念 4
1.5 手机游戏的现状与未来 5
1.6 小结 7
2.1 J2ME技术概述 8
第二章 知识准备 8
2.1.1 J2ME平台体系结构 9
2.1.2 J2ME、J2SE与J2EE之间的比较 12
2.1.3 MIDlet应用程序的生命周期 13
2.2 认识开发平台 16
2.2.1 Java 2 Micro Edition(J2ME) 16
2.2.2 Binary Runtime Environment for Wireless(BREW) 17
2.2.3 .NET 17
2.2.4 Windows Mobile Smartphone 18
2.2.5 Symbian 18
2.2.6 Short Message Service(SMS) 19
2.3 小结 19
3.1 CLDC的类库 20
第三章 CLDC简介 20
3.1.1 java.lang包 21
3.1.2 java.util包 21
3.1.3 java.io包 21
3.1.4 javax.microedition.io包 22
3.2 CLDC1.1的新特性 22
3.3 小结 23
第四章 主流开发环境的搭建 24
4.1 WTK环境的搭建 25
4.1.1 安装过程 25
4.1.2 目录结构 26
4.1.3 使用J2ME WTK创建工程 27
4.1.5 执行MIDlet 30
4.1.4 开启旧项目 30
4.1.6 打包成JAR 31
4.1.7 包混淆 31
4.1.8 WTK中其它值得关注的功能 32
4.2 Eclipse环境的搭建 33
4.2.1 Eclipse的安装与汉化 34
4.2.2 安装EclipseME插件 35
4.2.3 集成Sun WTK v2.2 38
4.2.4 加载Nokia Developer's Suite 2.2 40
4.2.5 用Eclipse进行无线开发 43
4.2.6 打包与混淆 46
4.3.1 集成WTK 48
4.3 JBuilder环境的搭建 48
4.3.2 建立JBuilder工程 50
4.3.3 常用快捷键设置 59
4.3.4 混淆与打包 60
4.3.5 可能出现的问题 65
4.4 小结 66
第五章 界面开发基础 67
5.1 关于界面开发lcdui包 67
5.2 Display类 68
5.2.1 Display类功能介绍 68
5.2.3 Displayable类 69
5.2.2 MIDP v2.0新增功能 69
5.3 Command类和CommandListener接口 70
5.3.1 Command类 70
5.3.2 CommandListener接口 72
5.3.3 应用实例 74
5.4 小结 80
第六章 MIDP高级UI的使用 82
6.1 概述 82
6.2 列表List 83
6.2.1 Exclusive(单选式) 85
6.2.2 Implicit(简易式) 85
6.2.3 Multiple(复选式) 86
6.3 TextBox 90
6.5 Alert 94
6.4 Ticker类 94
6.6 利用Form组织界面 99
6.7 StringItem及ImageItem 113
6.7.1 StringItem 113
6.7.2 ImageItem 114
6.8 CustomItem 120
6.9 TextField和DateField 133
6.10 Gauge和Spacer,ChoiceGroup 135
6.10.1 Gauge 135
6.10.2 Spacer 140
6.11 小结 141
6.10.3 ChoiceGroup 141
第七章 MIDP低级UI的使用 142
7.1 Canvas与屏幕事件处理 142
7.1.1 Canvas类 142
7.1.2 全屏事件处理 143
7.2 重绘事件及Graphics入门 145
7.2.1 坐标概念 145
7.2.2 对齐方式 146
7.2.3 颜色操作 147
7.2.4 绘图操作 149
7.2.5 裁剪区 153
7.2.6 Alpha混合功能 154
7.3.1 键盘设备输入处理 155
7.3 键盘及触控屏幕事件的处理 155
7.3.2 触控事件输入处理 158
7.4 Graphics相关类 158
7.4.1 Image类 158
7.4.2 Font-字体类 164
7.5 线程,定时器 165
7.5.1 J2ME中的线程 165
7.5.2 J2ME中的定时器 165
7.6 小结 166
8.1 初识RMS(Record Management System) 168
第八章 MIDP的持久化解决方案-RMS 168
8.2 RecordStore的管理 169
8.2.1 RecordStore的打开 170
8.2.2 RecordStore的关闭 171
8.2.3 RecordStore的删除 171
8.2.4 其他相关操作 172
8.3 RecordStore的基本操作 173
8.3.1 增加记录 173
8.3.2 修改和删除记录 174
8.3.3 自定义数据类型与字节数组的转换技巧 174
8.3.4 利用RMS实现对象序列化 176
8.4.1 RecordEnumeration遍历接口 177
8.4 RecordStore的进阶操作 177
8.4.2 RecordFilter过滤接口 179
8.4.3 RecordComparator比较接口 181
8.4.4 RecordListener监听器接口 182
8.5 小结 182
第九章 GAME API 183
9.1 游戏API简介 183
9.2 GameCanvas类 184
9.2.1 绘图 185
9.2.2 键盘 186
9.3 Layer的使用 191
9.3.1 TiledLayer 192
9.3.2 LayerManage 199
9.4 Sprite的使用 208
9.4.1 Sprite帧 210
9.4.2 帧序列 211
9.4.3 Reference Pixel 212
9.4.4 Sprite的变换 213
9.4.5 绘制Sprite 213
9.4.6 碰撞检测 214
9.5 一个示例 215
9.6 小结 235
第十章 MIDlet的开发流程与部署 237
10.1 J2ME程序的开发流程 237
10.2.2 MIDlet Suite 239
10.2 MIDlet Suites 239
10.2.1 JAM 239
10.2.3 JAR manifest 240
10.2.4 JAD描述文件 241
10.2.5 JAD描述文件与JAR manifest的关系 243
10.3 OTA(over-the-air) 243
10.3.1 OTA的介绍 243
10.3.2 OTA的安装 243
10.3.3 更新MIDlet Suite 244
10.3.4 MIDlet Suite的删除 244
10.4 小结 245
10.3.5 MIDlet Suite的安装和删除报告 245
第十一章 一个RPG游戏实例 247
11.1 项目设计 247
11.1.1 版本实现功能 247
11.1.2 故事背景 248
11.1.3 玩家角色设计 248
11.1.4 NPC设计 248
11.1.5 怪物设计 248
11.1.6 游戏界面以及地图设计 249
11.1.7 操作设计 251
11.1.8 美工设计 251
11.2 游戏实现 252
11.2.1 建立程序框架 252
11.1.9 程序框架设计 252
11.2.2 配置文件解析程序实现 255
11.2.3 广度优先搜索算法实现 258
11.2.4 玩家角色类实现 262
11.2.5 NPC类实现 267
11.2.6 怪物类实现 267
11.2.7 地图文件解析程序实现 270
11.2.8 程序集成 272
11.3 小结 278
第十二章 专业手机游戏开发之路 279
12.1 游戏的基本结构 279
12.2 游戏循环的实现 280
12.3 键盘缓冲 281
12.4 状态机 284
12.5 渲染 285
12.6 场景与角色 286
12.6.1 场景管理 286
12.6.2 角色管理 288
12.7 图片处理 289
12.7.1 减少图片容量 289
12.7.2 减少图片所占内存 290
12.8 移植问题 291
12.9 结束语 293
附录 295