第一部分 手机游戏的项目开发流程 2
第1章 游戏的开案立项 2
1.1 手机性能分析以及其局限性对游戏选题的影响 2
1.2 游戏类型的选择 2
1.2.1 ACT(Action Game)动作游戏 3
1.2.2 FTG(Fighting Game)格斗游戏 3
1.2.3 SPG(Sport Game)运动游戏 4
1.2.4 PUZ(Puzzle Game)益智游戏 4
1.2.5 AVG(Adventure Game)冒险游戏 6
1.2.6 PET养成类游戏 7
1.2.7 RPG(Role Playing Game)角色扮演类游戏 7
1.3 手机游戏玩家分析 9
1.3.1 玩家的游戏目的 9
1.3.2 玩家集中地域 10
1.3.3 玩家职业及年龄层 10
1.4 纯市场导向类选题 11
1.4.1 电影巨制的周边产业 11
1.4.2 知名游戏的平台移植 12
1.4.3 善用名著的群众基础 13
1.4.4 人气话题的善加利用 13
第2章 游戏草案 14
2.1 市场定位分析 14
2.1.1 游戏的新颖性 15
2.1.2 游戏的延展性 16
2.2 系统简介 16
2.2.1 列出所有游戏中涉及到的游戏系统 17
2.2.2 详细描述游戏中用到的新系统 17
2.2.3 权衡市场路线与系统配置 17
2.3 开发成本估算 18
2.3.1 人力资源配置 18
2.3.2 初步量化工作强度 19
2.4 立项及项目会议 20
2.4.1 立项会议的听审阶段 21
2.4.2 审核立项阶段 21
2.4.3 项目启动阶段 21
第3章 RPG类游戏策划案的模板 22
3.1 游戏简介 22
3.2 游戏系统 24
3.3 主菜单设计 24
3.4 界面设计 25
3.4.1 游戏菜单的设计 25
3.4.2 状态界面的设计 27
3.4.3 装备界面的设计 27
3.4.4 物品界面的设计 29
3.4.5 技能界面的设计 30
3.5 游戏制作流程图 30
3.6 战斗状态流程图 31
3.7 脚本 34
3.8 主人公技能列表 35
3.9 敌人列表 35
3.10 道具列表 38
3.11 场景需求列表 41
3.12 美术资源需求 41
3.12.1 UI图片需求列表 42
3.12.2 人物美术需求列表 42
3.12.3 动画美术需求列表 43
3.12.4 道具美术需求 44
3.12.5 NPC需求 45
3.13 NPC列表 46
3.14 数值平衡 47
3.15 游戏画面风格 50
3.15.1 主体画面风格 50
3.15.2 人物头身比例 53
3.15.3 场景基色构图 54
第4章 ACT类手机游戏策划案模板 55
4.1 游戏简述 55
4.2 游戏系统设计 55
4.2.1 战斗系统 56
4.2.2 宠物召唤、辅助攻击系统 56
4.2.3 卡片化身系统 57
4.2.4 反化身伪装系统 57
4.3 ACT游戏画面风格设定 57
4.4 ACT游戏的脚本设计 57
4.5 关卡设计 58
4.6 场景设计与需求 59
4.7 动作状态列表 60
4.8 键位设计 61
4.9 主菜单设计 63
4.10 游戏流程图 64
4.11 其他 65
第5章 手机游戏美术的制作流程 67
5.1 地图编辑器基本功能的使用介绍 67
5.1.1 地图编辑器的安装环境 67
5.1.2 CoolEdit地图编辑器功能简介 69
5.1.2.1 CoolEdit地图编辑器场景编辑功能 69
5.1.2.2 CoolEdit地图编辑器动画编辑功能 72
5.1.3 HotEdit地图编辑器的安装以及路径 73
5.1.4 HotEdit地图编辑器简单介绍 75
5.1.5 HotEdit地图编辑器的场景编辑功能 76
5.1.6 HotEdit地图编辑器的动画编辑功能 80
5.2 在HotEdit中制作游戏场景 81
5.2.1 HotEdit游戏场景地图层的制作 81
5.2.2 HotEdit中游戏场景建筑层的制作 85
5.3 在HotEdit中制作人物动画 88
5.4 HotEdit地图编辑器的后台数据 89
5.5 场景设定 90
5.5.1 游戏背景 90
5.5.2 场景风格设定 90
5.5.2.1 搜集参考资料 90
5.5.2.2 确定游戏视角 92
5.5.2.3 制作效果图 92
5.5.3 场景制作及细化 93
5.5.3.1 拆分单位元素块 93
5.5.3.2 细化单位元素 94
5.6 人物设定 96
5.6.1 造型设定 96
5.6.1.1 游戏的类型需求 96
5.6.1.2 游戏主体画面风格 97
5.6.1.3 人物身份背景 97
5.6.1.4 人物与各场景的搭配 99
5.6.2 动作设定 101
5.6.2.1 基本动作设计要符合人物的身份背景 101
5.6.2.2 物理攻击设计简单、实用、流畅 101
5.6.2.3 设计法术技能以及技能特效的注意事项 102
5.7 HotEdit地图编辑器中人物动画的实现 103
5.7.1 像素图表现 103
5.7.2 地图编辑器中的动画实现 104
5.8 美术资源的整合以及提交 106
5.8.1 美术各环节介绍 106
5.8.2 内存以及美术资源在各环节的合理分配 106
5.8.3 美术资源容量的控制 110
第6章 MIDlet应用程序的介绍 111
6.1 什么是MIDP 111
6.2 MIDlet入门和一个简单实例 112
6.3 MIDlet的生命周期 113
6.4 MIDP图形用户界面的介绍 113
6.4.1 MIDP高级图形用户界面Screen 116
6.4.1.1 TextBox组件 116
6.4.1.2 List组件 117
6.4.1.3 Alert组件 121
6.4.2 低级用户界面Canvas 122
6.4.3 画笔的各种画图操作 124
6.4.3.1 设置画笔颜色 124
6.4.3.2 填充矩形 124
6.4.3.3 绘制线条 124
6.4.3.4 用画笔写字符串 125
6.4.3.5 一个简单画图操作的实例 125
6.4.3.6 在内存中创建图片的画法 129
6.4.4 动画的实现 132
6.4.4.1 创建线程 132
6.4.4.2 一个简单动画实现的实例 134
6.4.5 按键响应 137
6.4.6 带按键响应的动画 140
第二部分 不同类型手机游戏开发实例详解 145
第7章 手机游戏的开发环境的配置 145
7.1 J2ME平台介绍 145
7.2 J2ME开发环境配置 145
7.2.1 安装JDK 145
7.2.2 配置JDK的环境变量 147
7.2.3 测试环境变量 149
第8章 RPG类手机游戏的开发实例 156
8.1 RPG游戏基本框架 156
8.2 地图的构建 158
8.2.1 地图的组成 158
8.2.2 地表层 158
8.2.2.1 地表的数据 158
8.2.2.2 地表的基本绘制方法 163
8.2.2.3 地表的更优绘制方法 167
8.2.3 建筑层(带动画的) 170
8.2.3.1 带动画的建筑层的组成 170
8.2.3.2 保存和绘制单元帧的UnitFrame类 172
8.2.3.3 建筑层的数组 176
8.2.3.4 用切片集来构造帧 188
8.2.3.5 建筑层数组 191
8.2.4 角色层 194
8.2.5 地表层的碰撞 194
8.2.6 建筑层的碰撞 195
8.3 角色系统 196
8.3.1 角色系统的组成 196
8.3.2 角色动作的帧类 199
8.3.3 角色的动作类和角色类 203
8.3.4 一个带四方向行走动作的Role类示例 206
8.3.5 用按键控制角色动作切换 209
8.4 地图和人物的整合显示 211
8.4.1 按键控制人物移动 211
8.4.2 地图的滚动 214
8.4.2.1 角色的居中显示 215
8.4.2.2 地图显示越界的约束 218
8.4.2.3 角色越界的约束 220
8.4.3 碰撞的实现 226
8.4.3.1 角色帧的碰撞区域 227
8.4.3.2 角色行走中和地表层碰撞的计算 230
8.4.3.3 建筑层的碰撞 235
8.4.4 遮挡的实现 242
8.4.5 计算屏幕的裁剪区域及取消非显示区域的绘制 243
8.5 脚本系统 245
8.5.1 一个简单的脚本事件 245
8.5.1.1 一个游戏事件的非脚本做法 245
8.5.1.2 构造数据层来保存地图触发的事件 246
8.5.2 常规的游戏事件 247
8.5.3 自定义的脚本命令 249
8.5.3.1 自动行走的脚本命令定义和实现 249
8.5.3.2 多个脚本事件的解析和实现 250
8.5.3.3 带有多个命令的脚本事件 252
8.5.4 脚本的完成标志 255
8.5.5 脚本的条件约束 256
8.6 用人物动作编辑器添加人物数据 258
8.6.1 完善当前的角色系统 258
8.6.2 角色动作编辑器使用 261
8.6.2.1 如何编辑角色 261
8.6.2.2 编辑器保存的数据格式 264
8.6.3 角色动作文件的解析 266
8.6.3.1 ActionFrame类的载入数据方法的修改 266
8.6.3.2 RoleAction类的载入数据方法的修改 268
8.6.3.3 Role类的载入数据方法的修改 268
8.6.3.4 容纳角色数组的Map类和数据读入 268
8.7 用地图编辑器生成地图数据和角色出生点信息 275
8.7.1 地表层的编辑 275
8.7.2 建筑层的编辑 276
8.7.3 其他人物的添加和在地图上的设置 278
8.7.4 建筑数据 279
8.7.4.1 建筑文件的格式 279
8.7.4.2 建筑数据文件的解析 279
8.7.5 地图数据的格式和解析 283
8.8 从文件读入的角色的绘制和控制 288
8.8.1 角色数据Copy功能的实现 289
8.8.2 角色数据的创建 290
8.8.3 角色的绘制 291
8.8.4 角色的控制 292
8.8.4.1 角色动作的添加和绘制 292
8.8.4.2 主角动作按键响应处理 295
8.8.4.3 应用了编辑器的角色和地图的碰撞 298
8.8.4.4 主角和其他角色之间的碰撞 299
8.8.4.5 主角动作控制和切换 302
8.9 战斗处理 306
8.9.1 攻击矩形的添加 306
8.9.2 攻击的判断 315
8.9.3 骷髅兵的行为模拟 317
8.9.4 非玩家角色(NPC)的追踪和攻击判断 324
8.9.4.1 追踪 324
8.9.4.2 攻击 326
8.10 用地图编辑器编辑剧情——脚本的编辑 329
8.11 地图的切换 332
8.12 编辑器的原理和开发 335
8.12.1 地图编辑器的需求分析 335
8.12.1.1 数据格式的定义 335
8.12.1.2 编辑器的界面需求分析 336
8.12.1.3 编辑器的操作需求分析 336
8.12.2 界面设计 337
8.12.2.1 新建一个JFrame窗口程序 337
8.12.2.2 在Frame中添加菜单项 339
8.12.2.3 一个显示地图的JPanel界面 340
8.12.2.4 添加一个显示单元的list界面 340
8.12.2.5 添加输入对话框 341
8.12.2.6 图层下拉框 343
8.12.2.7 添加、删除单元按钮 343
8.12.3 编辑器的操作设计和实现 344
8.12.3.1 地图类的定义 344
8.12.3.2 新建地图的实现 345
8.12.3.3 图层选择的实现 346
8.12.3.4 添加和删除单元的实现 347
8.12.3.5 显示地图功能 347
8.12.3.6 编辑地图功能 348
8.12.3.7 保存和打开地图的实现 350
小结 352
第9章 ACT类手机游戏开发实例 353
9.1 游戏的基本框架 353
9.1.1 引言 353
9.1.2 逻辑处理部分 356
9.1.2.1 定义LOGO的Image对象和计数器变量 356
9.1.2.2 初始化部分 356
9.1.2.3 逻辑部分 357
9.1.2.4 图形界面部分(屏幕绘制部分) 357
9.1.3 图形界面部分 357
9.1.4 按键处理部分 358
9.2 游戏地图的实现 359
9.2.1 游戏地图的组成 360
9.2.2 地图的程序描述 361
9.2.3 地图的具体实现 364
9.2.3.1 游戏场景地图的PNG资源图 364
9.2.3.2 游戏场景地图在手机屏幕上的显示步骤一 368
9.2.3.3 游戏场景地图在手机屏幕上的显示步骤二 369
9.2.3.4 游戏场景地图在手机屏幕上的显示步骤三 370
9.2.3.5 屏幕在游戏场景地图中的坐标(leftTopX,leftTopY)与主角的关系 371
9.2.4 建筑层的实现 374
9.3 ACT游戏中主角移动与地图滚动显示 377
9.3.1 主角类的基本信息介绍 377
9.3.2 播放当前动作的动画 379
9.3.2.1 动画的原理 379
9.3.2.2 动画的数据结构 381
9.3.2.3 完整动作的代码实现 382
9.3.2.4 具体游戏中的应用 384
9.3.3 主角的程序描述 385
9.3.4 在某状态下的图片显示及其动画显示 386
9.3.5 通过玩家控制(按键或者触屏等)来切换游戏状态或者主角状态(主动状态切换) 387
9.3.6 通过主角的动作导致的状态切换(被动状态切换) 388
9.4 ACT游戏中主角其他各动作之间的切换及显示 388
9.4.1 单个按键响应对主角状态的切换 389
9.4.2 实现连续按键的响应 390
9.4.3 实现多个按键的响应 392
9.4.3.1 多键组合的实现 393
9.4.3.2 条件多键组合 395
9.5 ACT游戏中主角攻击与碰撞 398
9.5.1 主角移动中的碰撞 401
9.5.1.1 主角与地表层信息的碰撞处理 401
9.5.1.2 与对象的碰撞处理 405
9.6 ACT游戏中特殊技能的实现 409
9.6.1 远程攻击的技能 410
9.6.2 召唤攻击技能 413
9.7 精灵及精灵AI的实现 416
9.7.1 敌人的基本信息及状态介绍 416
9.7.2 怪物的多种AI 419
9.7.2.1 普通怪物 419
9.7.2.2 追击型怪物 420
9.7.2.3 远程攻击型怪物 422
9.7.3 怪物与主角的区域碰撞实现 425
9.8 道具系统的添加 433
9.8.1 补充能量道具 434
9.8.2 特殊效果道具 436
9.9 剧情对话的添加(脚本实现) 438
9.10 任务系统 444
9.11 过场动画及特效 448
9.11.1 水平开屏、关屏 448
9.11.2 垂直百叶窗 449
9.11.3 打开、关闭盒子 452
9.12 存储 453
9.12.1 记录管理系统简介 453
9.12.2 RecordStore中的数据 454
9.12.2.1 RecordStore与Record的操作 454
9.12.2.2 游戏数据的存取 457
9.13 音效 461
第10章 全书内容综述 465