內容簡介
《actionscript 3.0遊戲編程(第2版)》是flash 遊戲開發經典書籍的第2 版。書中通過25 個完整的遊戲示例教授actionscript 編程,其中有9 個全新遊戲,用於講述更多關於actionscript 3.0 的技巧。示例中的代碼亦可用於構建非遊戲類項目。本書還講述了如何結合使用flash 和actionscript 3.0,如何使用actionscript 構建基本的遊戲框架。
本書適用於所有的flash 遊戲開發人員。
作譯者
Gary Rosenzweig 資深Flash遊戲專家、CleverMedia公司創始人和CEO。CleverMedia是一家專注於遊戲開發的公司,在過去的15年裡,共開發了 300多個基於Web的Flash和Shockwave遊戲。這些遊戲可以在該公司旗下的主要遊戲網站上找到。開發游 戲之餘,Gary喜歡寫作,樂於與人分享學習所得。除本書外,他還著有Macromedia Flash MX ActionScript for Fun & Games和Sams Teach Yourself Flash MX ActionScript in 24 Hours等書。
胡蓉 現居住於上海,曾是Flash開發社區9ria的咨.
目錄
《actionscript 3.0遊戲編程(第2版)》
第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