新書推薦:
《
不止江湖
》
售價:HK$
98.6
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:HK$
154.6
《
双城史
》
售價:HK$
110.9
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:HK$
55.8
《
月与蟹(青鲤文库)荣获第144届直木奖,天才推理作家经典作品全新译本。一部青春狂想曲,带你登上心理悬疑之巅。
》
售價:HK$
50.4
《
索恩丛书·盛清统治下的太监与皇帝
》
售價:HK$
88.5
《
透过器物看历史(全6册)
》
售價:HK$
490.6
《
我在台北故宫博物院读名画
》
售價:HK$
109.8
編輯推薦:
Flash游戏传送方便,操作简单。
一直受到众多游戏爱好者的喜爱。
因应这一潮流,《ActionScript 3.0游戏编程(第2版)》全面讲解了用ActionScript 3.0和Flash CS5创作有吸引力的Web游戏。
作者首先介绍TActionScript 3.0的基本概念,然后将Flash游戏分为13类,逐一讲解,并配有完整的游戏示例。
书中共介绍T25个完整的游戏及其源代码,包括配对游戏、问答游戏、拼图游戏、同色消除游戏、太空岩石、竞速游戏、平台卷轴和3D冒险等。
跟随作者罗森维格的步伐由浅入深地完成这些示例后,你将掌握基本的开发技术,继而能够创作自己的游戏。
內容簡介:
《ActionScript 3.0游戏编程第2版》是Flash游戏开发经典书籍的第2版。书中通过25个完整的游戏示例教授ActionScript编程,其中有9个全新游戏,用于讲述更多关于ActionScript 3.0的技巧。示例中的代码亦可用于构建非游戏类项目。《ActionScript 3.0游戏编程第2版》还讲述了如何结合使用Flash和ActionScript 3.0,如何使用ActionScript构建基本的游戏框架。
《ActionScript 3.0游戏编程第2版》适用于所有的Flash游戏开发人员。
關於作者:
Gary Rosenzweig 资深Flash游戏专家、CleverMedia公司创始人和CEO。CleverMedia是一家专注于游戏开发的公司,在过去的15年里,共开发了300多个基于Web的Flash和Shockwave游戏。这些游戏可以在该公司旗下的主要游戏网站www.GameScene.com上找到。开发游戏之余,Gary喜欢写作,乐于与人分享学习所得。除本书外,他还著有Macromedia Flash MX ActionScript for Fun & Games和Sams Teach Yourself Flash MX ActionScript in 24 Hours等书。
目錄 :
目 录
第1章 使用Flash和ActionScript 3.0 1
1.1 什么是ActionScript 3.0 1
1.2 创建简单的ActionScript程序 2
1.2.1 trace的简单用法 3
1.2.2 创建屏幕输出 5
1.2.3 我们的第一个ActionScript 3.0类 6
1.3 使用Flash CS5 9
1.3.1 显示对象和显示列表 9
1.3.2 舞台 9
1.3.3 库 10
1.3.4 时间轴 10
1.4 编辑ActionScript代码 11
1.5 ActionScript游戏编程策略 13
1.5.1 单类方法14
1.5.2 任务细分法14
1.5.3 良好的编程规范 14
1.6 ActionScript的基本概念 16
1.6.1 创建和使用变量 17
1.6.2 条件语句 18
1.6.3 循环 19
1.6.4 函数 19
1.7 测试及调试 20
1.7.1 bug类型 20
1.7.2 测试方法 20
1.7.3 使用调试器 21
1.8 发布游戏 23
1.8.1 格式 23
1.8.2 Flash 24
1.8.3 HTML 25
1.9 ActionScript游戏编程检查清单 26
1.9.1 发布和文档设置 26
1.9.2 类、函数和变量的名称 27
1.9.3 运行时问题 28
1.9.4 测试问题 28
第2章 ActionScript游戏元素 30
2.1 创建可视对象 30
2.1.1 使用影片剪辑 31
2.1.2 创建按钮 32
2.1.3 绘制图形 35
2.1.4 绘制文本 37
2.1.5 创建链接文本 39
2.1.6 创建Sprite对象组 40
2.1.7 设置Sprite的深度 42
2.2 接收用户输入 42
2.2.1 鼠标输入 43
2.2.2 键盘输入 44
2.2.3 文本输入 45
2.3 创建动画 46
2.3.1 Sprite运动 46
2.3.2 使用Timer 48
2.3.3 基于时间的动画 49
2.3.4 基于物理的动画 49
2.4 设计用户交互 51
2.4.1 移动Sprite 51
2.4.2 拖曳Sprite 53
2.4.3 碰撞检测 54
2.5 获取外部数据 55
2.5.1 外部变量 55
2.5.2 加载数据 57
2.5.3 存储本地数据 57
2.6 各类游戏元素 58
2.6.1 定制光标 58
2.6.2 播放声音 60
2.6.3 加载进程界面 61
2.6.4 随机数 62
2.6.5 数组重组 63
2.6.6 显示时间 64
2.6.7 系统数据 64
2.6.8 游戏盗版及保护问题 65
第3章 基本游戏框架:配对游戏 67
3.1 放置可交互的元素 68
3.1.1 创建游戏部件的方法 68
3.1.2 设置Flash影片 69
3.1.3 创建基本ActionScript类 70
3.1.4 使用常量实现更好的编程 73
3.1.5 随机分配卡片 74
3.2 游戏开始 76
3.2.1 添加鼠标侦听器 76
3.2.2 建立游戏逻辑 77
3.2.3 检测游戏结束 81
3.3 封装游戏 83
3.3.1 创建游戏影片剪辑 83
3.3.2 添加介绍界面 84
3.3.3 添加Play Again按钮 86
3.4 添加得分和时间 86
3.4.1 添加得分 87
3.4.2 添加时间 89
3.4.3 显示时间 90
3.4.4 游戏结束后显示所得分数和时间 91
3.5 添加游戏效果 93
3.5.1 卡片翻转动画 93
3.5.2 有限的卡片浏览时间 95
3.5.3 声音效果 96
3.6 修改游戏 98
第4章 脑力游戏:记忆和推理 99
4.1 数组和数据对象 99
4.1.1 数组 100
4.1.2 数据对象 101
4.1.3 数据对象数组 102
4.2 记忆游戏 102
4.2.1 准备影片 103
4.2.2 编程策略 105
4.2.3 类定义 105
4.2.4 设置文本、灯和音频 106
4.2.5 播放序列 109
4.2.6 开关灯 110
4.2.7 接收并检查玩家输入 111
4.2.8 修改游戏 113
4.3 推理游戏 114
4.3.1 建立影片 114
4.3.2 定义类 117
4.3.3 开始新的游戏 118
4.3.4 检查玩家的猜测 121
4.3.5 评估游戏结果 121
4.3.6 结束游戏 123
4.3.7 清除游戏元素 126
4.3.8 修改游戏 127
第5章 游戏动画:射击游戏和弹跳游戏 128
5.1 游戏动画 128
5.1.1 基于时间的动画 129
5.1.2 基于时间动画的编程 130
5.2 空袭游戏 133
5.2.1 影片设置和配置 133
5.2.2 飞行中的飞机 134
5.2.3 移动炮台 137
5.2.4 射向天空的炮弹 140
5.2.5 游戏类 142
5.2.6 修改游戏 148
5.3 弹球游戏 149
5.3.1 建立影片 149
5.3.2 类定义 152
5.3.3 开始游戏 153
5.3.4 新建一个小球 155
5.3.5 游戏动画及碰撞检测 155
5.3.6 游戏结束 161
5.3.7 修改游戏 162
第6章 拼图游戏:滑动与拼图 163
6.1 编辑位图图像 164
6.1.1 导入位图 164
6.1.2 位图切分 165
6.2 滑动拼接游戏 167
6.2.1 设置影片 168
6.2.2 设置类 168
6.2.3 导入图像 170
6.2.4 将图像切分成小块 171
6.2.5 重新排列小块 173
6.2.6 对玩家单击作出反应 175
6.2.7 滑动过程的动画 177
6.2.8 游戏结束和清理 178
6.2.9 修改游戏 179
6.3 拼图游戏 179
6.3.1 设置类 180
6.3.2 导入和切割图像 181
6.3.3 拖曳小块 184
6.3.4 游戏结束 188
6.3.5 修改游戏 189
第7章 方向和运动:空袭2、太空岩石和气球游戏 190
7.1 用数学方法旋转和移动对象 190
7.1.1 正弦函数和余弦函数 191
7.1.2 使用余弦和正弦移动小车 192
7.1.3 根据位置计算角度 195
7.2 空袭2 198
7.2.1 改变高射炮 198
7.2.2 改变炮弹 200
7.2.3 创建AirRaid2.as 202
7.3 太空岩石 203
7.3.1 游戏元素设计 203
7.3.2 设置图形 205
7.3.3 设置类 206
7.3.4 开始游戏 208
7.3.5 得分和状态显示对象 209
7.3.6 飞船运动和玩家输入 211
7.3.7 打开保护盾 215
7.3.8 岩石 216
7.3.9 导弹 219
7.3.10 游戏控制 221
7.3.11 修改游戏 223
7.4 气球游戏 223
7.4.1 游戏元素设计 224
7.4.2 设置图形 225
7.4.3 设置类 225
7.4.4 开始游戏 226
7.4.5 准备一个游戏级别 226
7.4.6 主要的游戏事件 227
7.4.7 玩家控制 229
7.4.8 弹出气球 230
7.4.9 结束分布级别和游戏 231
7.4.10 时间轴脚本 232
7.4.11 修改游戏 232
第8章 休闲游戏:同色消除和消除方块 233
8.1 可重用的类:爆炸点 234
8.1.1 开发爆炸点类 235
8.1.2 在影片中使用爆炸点 238
8.2 同色消除 240
8.2.1 玩同色消除游戏 241
8.2.2 游戏功能概述 241
8.2.3 影片和Match Three类 242
8.2.4 设置游戏网格 244
8.2.5 玩家交互 246
8.2.6 制作小块的移动动画 248
8.2.7 寻找匹配 250
8.2.8 寻找可能的移动 254
8.2.9 分数记录和游戏结束 257
8.2.10 修改游戏 258
8.3 消除方块 258
8.3.1 设置图形 260
8.3.2 设置类 260
8.3.3 开始游戏 261
8.3.4 递归 262
8.3.5 使用递归移除小块 264
8.3.6 掉落的小块 266
8.3.7 检查空列 267
8.3.8 游戏结束 269
8.3.9 修改游戏 270
第9章 文字游戏:Hangman和单词搜索 271
9.1 字符串和文本字段 271
9.1.1 ActionScript 3.0字符串处理 272
9.1.2 对文本字段应用文本格式 275
9.2 Hangman 281
9.2.1 设置Hangman游戏 281
9.2.2 Hangman 类 282
9.3 单词搜索 284
9.3.1 开发策略 285
9.3.2 定义类 286
9.3.3 创建单词搜索网格 287
9.3.4 用户交互 291
9.3.5 处理发现的单词 293
9.3.6 修改游戏 296
第10章 问题和答案:问答游戏 297
10.1 存储和获取游戏数据 297
10.1.1 理解XML数据 298
10.1.2 导入外部XML文件 300
10.1.3 处理加载错误 301
10.2 问答游戏 301
10.2.1 设计一个简单的问答游戏 302
10.2.2 设置影片 302
10.2.3 设置类 303
10.2.4 导入问答数据 306
10.2.5 信息文本和游戏按钮 306
10.2.6 推进游戏进程 308
10.2.7 显示问题和答案 308
10.2.8 判断玩家的答案 310
10.2.9 结束游戏 311
10.3 问答游戏豪华版 312
10.3.1 添加时间限制 312
10.3.2 添加提示 314
10.3.3 添加事实描述 317
10.3.4 添加复杂的计分方式 317
10.3.5 随机选择问题 319
10.4 图片问答游戏 320
10.4.1 更好的答案布局 320
10.4.2 识别两种类型的答案 322
10.4.3 创建Loader对象 322
10.4.4 判断正确答案 323
10.4.5 扩展单击区域 324
10.4.6 将图像作为问题 325
10.4.7 修改游戏 326
第11章 动作类游戏:平台游戏 327
11.1 设计游戏 328
11.1.1 关卡设计 328
11.1.2 设计类 333
11.1.3 规划所需函数 334
11.2 建立类 335
11.2.1 类的定义 335
11.2.2 开始游戏和关卡 336
11.2.3 键盘输入 340
11.2.4 游戏主循环 341
11.2.5 角色的运动 342
11.2.6 滚动游戏关卡 347
11.2.7 检测碰撞 348
11.2.8 敌人和玩家的死亡 348
11.2.9 收集分数和物体 350
11.2.10 显示玩家状态 351
11.2.11 关卡和游戏的结束 352
11.2.12 游戏对话框352
11.3 修改游戏 353
第12章 驾驶和竞速游戏 355
12.1 创建俯视图驾驶游戏355
12.1.1 创建一个俯视下的世界 355
12.1.2 游戏设计 358
12.1.3 类的定义 360
12.1.4 构造函数 362
12.1.5 寻找街区 364
12.1.6 垃圾的放置 364
12.1.7 键盘输入 366
12.1.8 游戏循环 367
12.1.9 车的移动 368
12.1.10 检测与垃圾及垃圾桶的碰撞 370
12.1.11 时钟 372
12.1.12 分数提示器 372
12.1.13 游戏结束 373
12.1.14 修改游戏 374
12.2 建立Flash竞速游戏 374
12.2.1 竞速游戏的元素 374
12.2.2 制作赛道 375
12.2.3 音效 376
12.2.4 常量和变量 376
12.2.5 开始游戏 377
12.2.6 游戏主循环 378
12.2.7 车的移动 380
12.2.8 检查进度 381
12.2.9 倒计时和时钟 382
12.2.10 游戏结束 383
12.2.11 修改游戏 384
第13章 纸牌游戏:猜大小、电子扑克和21点 385
13.1 猜大小 385
13.1.1 创建牌堆 386
13.1.2 建立类 387
13.1.3 开始游戏 387
13.1.4 响应玩家的行为 389
13.1.5 清空 390
13.1.6 修改游戏 391
13.2 电子扑克 391
13.2.1 洗牌和发牌 392
13.2.2 计时事件 392
13.2.3 创建牌堆 393
13.2.4 游戏元素 393
13.2.5 建立类 394
13.2.6 洗牌 396
13.2.7 计时事件 396
13.2.8 开始发牌 397
13.2.9 抽牌399
13.2.10 完成一手牌 401
13.2.11 计算扑克赢分 402
13.2.12 修改游戏 403
13.3 21 点 403
13.3.1 游戏元素 403
13.3.2 设置类 404
13.3.3 开始游戏 405
13.3.4 计时事件 406
13.3.5 发牌 407
13.3.6 要牌或停牌 408
13.3.7 庄家行为 409
13.3.8 计算21点的手牌 410
13.3.9 游戏的其他函数 412
13.3.10 修改游戏 413
第14章 3D游戏:打靶训练、竞速游戏和地牢冒险 414
14.1 Flash 3D基础 415
14.1.1 设置3D位置 415
14.1.2 旋转物体 416
14.2 打靶训练 418
14.2.1 游戏元素 418
14.2.2 设置类 419
14.2.3 开始游戏 420
14.2.4 绘制加农炮和标靶 420
14.2.5 移动加农炮 421
14.2.6 打出炮弹 422
14.2.7 修改游戏 423
14.3 3D竞速游戏 423
14.3.1 游戏元素 424
14.3.2 建立影片 425
14.3.3 用户控制 427
14.3.4 玩家的移动 429
14.3.5 z索引排序 430
14.3.6 修改游戏 431
14.4 3D 地牢冒险 431
14.4.1 游戏元素 432
14.4.2 设置游戏 432
14.4.3 构造地牢 433
14.4.4 游戏主函数 436
14.4.5 玩家的移动 437
14.4.6 收集硬币 438
14.4.7 游戏的局限性 439
14.4.8 扩展游戏 439
第15章 为iPhone制作游戏 441
15.1 开始iOS开发 441
15.1.1 需要准备什么 442
15.1.2 为iOS的发布 443
15.1.3 iOS游戏的建立过程 447
15.2 设计和编程的注意事项 448
15.2.1 屏幕尺寸 448
15.2.2 非网页 449
15.2.3 触摸 449
15.2.4 处理器速度 449
15.2.5 加速计 450
15.3 滑块拼图改编 451
15.3.1 调整屏幕尺寸 451
15.3.2 更改发布设置 452
15.3.3 包含图片 452
15.3.4 发布 453
15.4 弹子迷宫游戏 454
15.4.1 建立类 454
15.4.2 开始游戏 455
15.4.3 游戏实操 456
15.4.4 碰撞检测 458
15.4.5 游戏结束 459
15.4.6 修改游戏 459
15.5 为iOS设备而优化 460
15.5.1 利用GPU和位图缓存 460
15.5.2 对象池 462
15.5.3 简化事件 462
15.5.4 最小化屏幕重绘区 463
15.5.5 更多优化方法 463
15.6 iPhone之外 465
內容試閱 :
第1章 使用Flash和ActionScript 3.0
1.3 使用Flash CS5
尽管大部分工作是通过Actionscript完成的,但是我们仍然需要了解一些与FlashCs5时间轴、舞台及库的使用相关的术语和基本知识。
1.3.1 显示对象和显示列表
我们已经了解过显示对象,它们主要以图形元素为主。影片剪辑movie
clip是最通用的显示对象,它可以包含大量的显示对象,另外它还含有动画时间轴。
影片剪辑的一个更简单的版本是Sprite。本质上,Sprite是只有一帧的影片剪辑。我们用ActionScript从头开始创建显示对象时,往往就是创建的Sprite。它们天生就比影片剪辑更高效,因为它们不会带来多个动画帧那样的开销。
其他的显示对象有:文本字段、位图及视频。
部分显示对象如影片剪辑和Sprite对象可以包含其他显示对象。例如,你可以用Sprite对象包含其他Sprite对象、文本字段及位图等。
通过嵌套显示对象可以组织图形元素。例如,你可以创建一个Sprite对象来存储所有通过ActionScript创建的游戏元素。这时,你会得到一个包含了多种背景元素的背景Sprite对象。另外,还可以将一个代表游戏各种组成部分的Sprite对象叠加在其上方,用它来包含一些可移动的游戏元素。
……