第1章 熟悉J2ME技术在JBuilder 2005工作环境中的应用 1
1.1 学习情境描述 1
1.2 开发第一个MIDlet 2
1.2.1 知识准备:了解J2ME 2
1.2.2 任务一:在JBuilder 2005中搭建手机游戏的开发环境 3
1.2.3 任务二:运行MIDlet 7
1.2.4 知识拓展:模拟器和开发包 9
1.2.5 延伸任务:下载高版本WTK并将其嵌入到JBuilder 2005中 10
1.3 打包发布手机游戏应用程序 14
1.3.1 任务三:打包和混淆手机游戏应用程序 14
1.3.2 知识拓展:应用程序描述文件和清单文件 18
1.4 将游戏下载到手机 20
1.4.1 任务四:通过数据线或蓝牙适配器下载游戏到手机 20
1.4.2 知识拓展:以OTA方式下载游戏 21
本章小结 22
课后实训 22
第2章 制作闪屏和菜单 24
2.1 学习情境描述 24
2.2 利用高级用户界面制作闪屏和菜单 25
2.2.1 知识准备:了解用户界面体系结构 25
2.2.2 任务一:利用Alert界面组件制作闪屏 26
2.2.3 任务二:利用List界面组件制作菜单 30
2.2.4 延伸任务:给游戏界面加入水平滚动字幕 32
2.2.5 知识拓展:了解TextBox界面组件和Form界面组件 33
2.3 在低级用户界面中制作菜单 35
2.3.1 知识准备:认识Graphics绘图对象和Canvas画布 35
2.3.2 任务三:绘制背景图片 36
2.3.3 任务四:绘制菜单文字 39
2.3.4 任务五:突出显示当前菜单项并通过上、下方向键实现菜单项的选择 42
2.3.5 任务六:制作图片菜单 44
2.3.6 延伸任务:设计制作个性化菜单 47
2.3.7 知识拓展:绘制基本图形 50
本章小结 51
课后实训 52
第3章 手机游戏的控制 55
3.1 学习情境描述 55
3.2 控制游戏时间 56
3.2.1 知识准备:了解多线程 56
3.2.2 任务一:实现游戏时间的倒计时 57
3.3 制作游戏加载进度条 62
3.3.1 知识准备:了解对象池的概念 62
3.3.2 任务二:用Gauge界面组件制作进度条 62
3.3.3 任务三:用填充矩形框的方式制作进度条 65
3.4 响应菜单命令 70
3.4.1 知识准备:事件处理 70
3.4.2 任务四:用Command按钮响应菜单命令 71
3.4.3 延伸任务:从游戏界面返回菜单界面 75
3.5 控制游戏进程 77
3.5.1 知识准备:了解MIDlet的生命周期 77
3.5.2 任务五:控制游戏的开始、暂停、继续、重玩和返回 78
3.6 搭建游戏制作框架 82
3.6.1 任务六:实现多闪屏 82
3.6.2 任务七:使用状态变量控制游戏进程 85
本章小结 97
课后实训 98
第4章 MIDP 2.0游戏开发 100
4.1 学习情境描述 100
4.2 认识游戏的屏幕 101
4.2.1 知识准备:了解Game-Canvas类 101
4.2.2 任务一:控制正方形的移动 102
4.3 游戏主角的设计 109
4.3.1 知识准备:了解精灵类Sprite 109
4.3.2 任务二:利用精灵类制作主角 110
4.4 子弹的设计 116
4.4.1 知识准备:了解Vector类 116
4.4.2 任务三:利用Vector制作主角子弹 117
4.4.3 延伸任务:使用其他方法实现主角子弹 119
4.5 敌机的设计 124
4.5.1 知识准备:了解Sprite碰撞方法 124
4.5.2 任务四:添加敌机 124
4.5.3 延伸任务:添加时间轴安排游戏情节 130
4.6 游戏背景的设计 135
4.6.1 知识准备:了解瓷片类TiledLaver 136
4.6.2 任务五:铺设游戏背景 137
4.6.3 延伸任务:使用地图编辑器设计游戏背景 140
4.7 滚屏的设计 143
4.7.1 知识准备:了解层管理器 143
4.7.2 任务六:实现游戏屏幕的滚动 144
本章小结 147
课后实训 148
第5章 音频与视频处理 150
5.1 学习情境描述 150
5.2 以独占方式播放声音 151
5.2.1 知识准备:了解Mobile Media API类 151
5.2.2 任务一:获取并播放音频文件 153
5.3 以线程方式播放声音 156
5.3.1 知识准备:了解在手机游戏中播放声音的方式 156
5.3.2 任务二:使用线程为游戏添加背景音乐 156
5.4 控制声音的播放效果 160
5.4.1 知识准备:了解控制音效的方法 160
5.4.2 任务三:播放爆炸音效 162
5.4.3 延伸任务:控制音量 163
5.5 播放视频 167
5.5.1 知识准备:了解视频播放方法 167
5.5.2 任务四:为游戏加入视频 168
本章小结 172
课后实训 173
第6章 游戏进度的保存 174
6.1 学习情境描述 174
6.2 操作记录集 175
6.2.1 知识准备:了解记录存储系统 175
6.2.2 任务一:打开和关闭记录集 177
6.3 操作记录 179
6.3.1 知识准备:了解记录的常用操作 179
6.3.2 任务二:添加和更新记录 181
6.4 实现最高分和音乐开关的保存 184
6.4.1 知识准备:了解数据更新 184
6.4.2 任务三:利用记录集实现最高分和音乐开关的保存 185
6.5 排行榜的实现 190
6.5.1 知识准备:了解排行榜 190
6.5.2 任务四:重构游戏(一) 190
6.5.3 任务五:重构游戏(二) 196
6.5.4 任务六:实现排行榜 203
本章小结 207
课后实训 208
第7章 手机游戏制作技巧的提升 209
7.1 学习情境描述 209
7.2 图片过渡效果的处理 210
7.2.1 任务一:实现“渐显”过渡效果 210
7.2.2 任务二:实现“淡入淡出”过渡效果 213
7.2.3 延伸任务:实现“百叶窗”和“块状”过渡效果 217
7.3 手机游戏中常用的动画制作方法 217
7.3.1 任务三:使用图像数组实现动画 218
7.3.2 任务四:利用setClip()方法实现动画 222
7.3.3 任务五:利用Sprite对象播放动画 226
7.4 手机游戏中的人工智能 229
7.4.1 知识准备:了解人工智能 229
7.4.2 任务六:实现炮台子弹对飞机的跟踪射击 229
7.4.3 延伸任务:使用定时器Timer实现对炮台子弹的控制 236
7.5 使用Canvas对象的显示和隐藏事件 238
7.5.1 知识准备:了解showNotify()和hideNotify()事件处理方法 238
7.5.2 任务七:来电暂停和恢复处理 238
7.5.3 任务八:实现文字的自动折行和滚动效果 239
7.6 设置手机游戏的收费点 243
7.6.1 知识准备:了解使用WMA接收和发送短消息的原理 243
7.6.2 任务九:实现手机游戏的收费功能 244
本章小结 248
课后实训 249
第8章 游戏实战——决战之巅 251
8.1 学习情境描述 251
8.2 游戏策划 251
8.2.1 任务一:策划游戏的定位和故事背景 251
8.2.2 任务二:设计游戏内容 252
8.2.3 任务三:设定游戏参数 253
8.2.4 任务四:设计游戏效果(草)图 254
8.3 游戏架构 258
8.3.1 任务五:设计游戏的总体架构和主流程图 258
8.3.2 任务六:确定游戏的类结构 259
8.4 游戏界面的设计和实现 260
8.4.1 任务七:设计地图场景并实现滚屏 260
8.4.2 任务八:设计游戏的主菜单 262
8.4.3 任务九:设计游戏的起始界面 268
8.4.4 任务十:设计游戏的交费和续费界面并实现收费功能 271
8.5 游戏对象的创建、移动和绘制 273
8.5.1 任务十一:创建、移动和绘制主角战机 273
8.5.2 任务十二:创建、移动和绘制主角战机的子弹 275
8.5.3 任务十三:创建、移动和绘制NPC 278
8.5.4 任务十四:创建、移动和绘制NPC子弹 280
8.5.5 任务十五:创建、移动和绘制炮台及其子弹 282
8.5.6 任务十六:创建、移动和绘制随机掉落的道具 284
8.6 游戏运行的逻辑设计和实现 286
8.6.1 任务十七:游戏对象间的碰撞处理 286
8.6.2 任务十八:爆炸处理 290
8.6.3 任务十九:“发大招”处理 292
8.6.4 任务二十:BOSS1相关处理 294
8.6.5 任务二十一:主角生命的相关处理 298
本章小结 300
课后实训 300
附录 Java语言编程规范 304
参考文献 308