第1章 熟悉J2ME技术在Eclipse工作环境中的应用 1
1.1 学习情境描述 1
1.2 使用Eclipse搭建手机游戏的开发环境 1
1.2.1 单元任务总述 1
1.2.2 知识准备:了解Eclipse 2
1.2.3 任务一:搭建Eclipse集成开发环境 2
1.2.4 知识拓展:模拟器和开发包 5
1.2.5 任务二:下载WTK 2.5.2并将其嵌入到Eclipse工作环境中 6
1.3 开发第一个MIDlet应用程序 10
1.3.1 单元任务总述 10
1.3.2 知识准备:了解J2ME 10
1.3.3 任务三:新建MIDlet应用程序 12
1.3.4 任务四:运行MIDlet应用程序 16
1.3.5 延伸任务:关闭、删除、打开MIDlet工程 19
1.4 打包发布手机游戏应用程序 21
1.4.1 单元任务总述 21
1.4.2 任务五:打包和混淆手机游戏应用程序 22
1.4.3 知识拓展:应用程序描述文件和清单文件 23
1.5 将游戏下载到手机 24
1.5.1 单元任务总述 24
1.5.2 任务六:通过数据线或蓝牙适配器下载游戏到手机 25
1.5.3 知识拓展:OTA方式下载游戏 25
本章小结 26
课后实训 26
第2章 制作闪屏和菜单 28
2.1 学习情境描述 28
2.2 制作简单的闪屏和菜单 29
2.2.1 单元任务总述 29
2.2.2 知识准备:了解用户界面体系结构 29
2.2.3 任务一:利用Alert界面组件制作闪屏 30
2.2.4 任务二:利用List界面组件制作菜单 31
2.2.5 延伸任务:给游戏界面加入水平滚动字幕 33
2.2.6 知识拓展:了解TextBox界面组件和Form界面组件 34
2.3 制作文字菜单 36
2.3.1 单元任务总述 36
2.3.2 知识准备:认识Graphics绘图对象和Canvas画布 37
2.3.3 任务三:绘制背景图片 37
2.3.4 任务四:绘制菜单文字 41
2.3.5 任务五:突出显示当前菜单项并通过上、下方向键实现菜单项的选择 44
2.4 制作图片菜单 46
2.4.1 单元任务总述 46
2.4.2 任务六:绘制菜单图片 46
2.4.3 任务七:绘制矩形框,突出显示当前菜单项 47
2.4.4 延伸任务:设计制作个性化菜单 49
2.4.5 知识拓展:绘制基本图形 50
本章小结 51
课后实训 52
第3章 手机游戏的控制 55
3.1 学习情境描述 55
3.2 响应菜单命令 56
3.2.1 单元任务总述 56
3.2.2 知识准备:事件处理 56
3.2.3 任务一:使用Command按钮响应菜单命令 57
3.2.4 延伸任务:返回主菜单 60
3.2.5 任务二:使用图片或文字按钮响应菜单命令 61
3.3 使用线程控制游戏进程 63
3.3.1 单元任务总述 63
3.3.2 知识准备:了解线程 63
3.3.3 任务三:实现多闪屏 64
3.3.4 任务四:实现游戏时间的倒计时 68
3.3.5 任务五:控制游戏的开始、暂停、继续和重玩 71
3.3.6 知识拓展:了解MIDlet的生命周期 74
3.4 制作游戏加载进度条 75
3.4.1 单元任务总述 75
3.4.2 任务六:使用Gauge界面组件制作进度条 75
3.4.3 知识准备:了解对象池的概念 76
3.4.4 任务七:用填充矩形框的方式制作进度条 77
3.5 搭建手机游戏制作框架 80
3.5.1 单元任务总述 80
3.5.2 任务八:快速搭建手机游戏制作框架 80
3.5.3 延伸任务:任务重构,使用状态变量控制游戏进程 83
本章小结 89
课后实训 91
第4章 MIDP 2.0游戏开发 92
4.1 学习情境描述 93
4.2 游戏主角设计 93
4.2.1 单元任务总述 93
4.2.2 知识准备:了解GameCanvas类 93
4.2.3 任务一:控制主角飞机在屏幕上移动 93
4.2.4 任务二:飞机移动时,实现形状的改变 99
4.2.5 任务三:设计主角人物在屏幕上行走 102
4.2.6 延伸任务:控制主角人物,按键行走,释放站立 106
4.3 子弹设计 107
4.3.1 单元任务总述 107
4.3.2 任务四:使用Vector类设计子弹 108
4.3.3 任务五:使用自定义子弹(Bullet)类的方法设计子弹 111
4.3.4 延伸任务:实现散弹 113
4.4 非玩家控制的角色设计 116
4.4.1 单元任务总述 116
4.4.2 任务六:出现敌机(队列) 116
4.4.3 延伸任务:添加时间轴,安排游戏情节 122
4.4.4 任务七:实现主角子弹和敌机的碰撞检测 123
4.4.5 任务八:出现BOSS 128
4.5 游戏背景设计 132
4.5.1 单元任务总述 132
4.5.2 任务九:使用一个图块,“铺设”单一的游戏背景 132
4.5.3 任务十:使用合成图块,“铺设”丰富的游戏背景 134
4.5.4 任务十一:使用地图编辑器,设计大型地图 136
4.5.5 延伸任务:铺设多层地图 139
4.6 滚屏设计 142
4.6.1 单元任务总述 142
4.6.2 知识准备:了解层和层管理机制 142
4.6.3 任务十二:实现游戏屏幕的自动滚动 142
4.6.4 延伸任务:实现滚动背景下的飞行射击效果 145
4.6.5 任务十三:根据主角人物的位置,重置地图视角 146
本章小结 152
课后实训 156
第5章 音频与视频处理 158
5.1 学习情境描述 158
5.2 音效设计 159
5.2.1 单元任务总述 159
5.2.2 任务一:播放音效 159
5.2.3 任务二:实现音效的开关 163
5.2.4 任务三:控制音量、设置静音 165
5.2.5 任务四:实现菜单背景音乐和游戏背景音乐之间的切换 166
5.2.6 延伸任务:为游戏加入爆炸等提示短音 170
5.3 播放视频 171
5.3.1 单元任务总述 171
5.3.2 任务五:播放片头视频 172
5.3.3 任务六:响应播放事件 174
本章小结 175
课后实训 176
第6章 游戏进度的保存 178
6.1 学习情境描述 178
6.2 操作记录集 178
6.2.1 单元任务总述 178
6.2.2 知识准备:认识记录存储系统 179
6.2.3 任务一:保存游戏进度 180
6.2.4 任务二:读取游戏进度,继续游戏 185
6.3 保存最高分记录 187
6.3.1 单元任务总述 187
6.3.2 任务三:保存最高分 188
6.3.3 任务四:保存玩家姓名和最高分 192
6.4 实现排行榜 194
6.4.1 单元任务总述 194
6.4.2 任务五:显示排行榜 194
6.4.3 任务六:更新排行榜 199
6.4.4 知识拓展 201
本章小结 202
课后实训 203
第7章 手机游戏制作技巧的提升 205
7.1 学习情境描述 205
7.2 图片过渡效果的处理 205
7.2.1 单元任务总述 205
7.2.2 任务一:实现图片的“移入”效果 206
7.2.3 任务二:实现“渐显”效果 208
7.2.4 任务三:实现“百叶窗”效果 210
7.2.5 任务四:实现“块状”过渡效果 211
7.2.6 延伸任务:实现“淡入淡出”效果 212
7.3 手机游戏中常用的动画制作方法 214
7.3.1 单元任务总述 214
7.3.2 任务五:使用图像数组实现动画 215
7.3.3 任务六:利用setClip()和drawImage()方法实现动画 218
7.3.4 任务七:利用Sprite对象播放动画 221
7.4 手机游戏中的人工智能 224
7.4.1 单元任务总述 224
7.4.2 任务八:实现炮台子弹对飞机的跟踪射击 225
7.4.3 延伸任务:使用定时器Timer实现对炮台子弹的控制 230
7.5 使用Canvas对象的显示和隐藏事件 232
7.5.1 单元任务总述 232
7.5.2 知识准备:了解showNotify()和hideNotify()事件处理方法 232
7.5.3 任务九:来电暂停和恢复处理 232
7.5.4 延伸任务:实现文字的自动折行和滚动效果 233
7.6 设置手机游戏的收费点 237
7.6.1 单元任务总述 237
7.6.2 知识准备:了解使用WMA接收和发送短消息 237
7.6.3 任务十:实现手机游戏的收费功能 238
本章小结 242
课后实训 243
第8章 游戏实战——决战之巅 244
8.1 学习情境描述 244
8.2 游戏策划 244
8.2.1 任务一:策划游戏的定位和故事背景 244
8.2.2 任务二:设计游戏内容 245
8.2.3 任务三:设定游戏参数 245
8.2.4 任务四:设计游戏效果(草)图 247
8.3 游戏架构 250
8.3.1 任务五:设计游戏的总体架构和主流程图 250
8.3.2 任务六:确定游戏的类结构 250
8.4 游戏界面的设计和实现 252
8.4.1 任务七:设计游戏的主菜单 252
8.4.2 任务八:设计游戏的起始界面 258
8.4.3 任务九:设计游戏的交费和续费界面并实现收费功能 260
8.4.4 任务十:设计地图场景并实现滚屏 262
8.5 游戏对象的创建、移动和绘制 263
8.5.1 任务十一:创建、移动和绘制主角战机 264
8.5.2 任务十二:创建、移动和绘制主角战机的子弹 265
8.5.3 任务十三:创建、移动和绘制NPC 269
8.5.4 任务十四:创建、移动和绘制NPC子弹 271
8.5.5 任务十五:创建、移动和绘制炮台及其子弹 272
8.5.6 任务十六:创建、移动和绘制随机掉落的道具 275
8.6 游戏运行的逻辑设计和实现 277
8.6.1 任务十七:游戏对象间的碰撞处理 277
8.6.2 任务十八:爆炸处理 280
8.6.3 任务十九:“发大招儿”处理 282
8.6.4 任务二十:BOSS1相关处理 284
8.6.5 任务二十一:主角生命相关处理 287
本章小结 288
课后实训 289
附录 Java语言编程规范 293
参考文献 297