第1 章 計算機科學並不適閤所有人 1
1.1 一些基礎知識 1
1.2 常見遊戲類型 1
1.2.1 冒險類遊戲 1
1.2.2 動作類遊戲 1
1.2.3 益智解謎類遊戲 2
1.2.4 詞匯類遊戲 2
1.2.5 策略與模擬經營類遊戲 3
1.2.6 角色扮演遊戲 4
1.2.7 駕駛類遊戲 4
1.2.8 桌麵式和卡牌式遊戲 4
1.3 常用開發術語 5
1.3.1 僞碼 5
1.3.2 算法 5
1.3.3 過程式編程 5
1.3.4 麵嚮對象編程 5
1.3.5 設計模式 6
1.3.6 類 6
1.3.7 Public、Protected、Private和Internal 6
1.4 遊戲特有的開發術語 7
1.4.1 人工智能 7
1.4.2 遊戲循環(或者說“主循環”) 7
1.4.3 遊戲視角 8
1.4.4 捲動背景 8
1.4.5 區塊式遊戲 8
1.5 Flash 程序開發術語 8
1.5.1 舞颱 9
1.5.2 顯示對象 9
1.5.3 事件和偵聽器 9
1.5.4 包 9
1.5.5 創作時事件、編譯時事件及運行時事件 9
1.6 醒一醒 10
第2 章 最佳編程工具 11
2.1 倒敘幾句 11
2.2 Flash 的一些優點 11
2.2.1 玩傢占有率 12
2.2.2 靈活性 12
2.2.3 上市速度 12
2.2.4 美觀性 12
2.3 白璧微瑕 13
2.3.1 缺點:代碼編輯器 13
2.3.2 解決方案:使用附加工具 13
2.3.3 缺點:性能及內存管理 14
2.3.4 解決方案:使用第三方解決方案或自己創建 14
2.3.5 缺點:內容調試 15
2.3.6 解決方案:使用跟蹤輸齣與自定義工具 15
2.3.7 缺點:缺乏內建遊戲庫 16
2.3.8 解決方案:自己開發工具或尋找開源工具 16
2.4 不要和Flash 對抗 17
2.5 Flash 所能創建的內容 17
2.5.1 動畫與遊戲 17
2.5.2 應用程序與遊戲 17
2.5.3 Flash 與Flex 18
2.5.4 網站與遊戲 18
2.5.5 Flash 與傳統遊戲開發 19
2.6 最佳創作工具 19
第3 章 一份計劃抵得上1000 片阿司匹林 20
3.1 用一兩句話來描述遊戲 20
3.2 為包含所有遊戲界麵的遊戲流程列齣提綱或繪製綫框圖 20
3.3 概述遊戲所使用的核心機製 21
3.4 列齣所需的資源清單 23
3.5 列齣遊戲所需的技術清單 24
3.6 用UML 建模工具設計類圖(可選) 26
3.7 規劃步驟的快速迴顧 27
第4 章 //太棒瞭! 28
4.1 適當的提醒 28
部分1 類 28
4.2 包 29
4.3 類就像文件一樣 29
4.4 構造函數 29
4.5 常量、變量與方法 29
4.6 getter 與setter 方法 31
4.7 類標識符 32
4.8 繼承與多態 33
4.9 接口 34
4.10 將Flash 中的資源與類鏈接起來 36
4.11 類與基類 37
4.12 使用沒有類文件的導齣元件 38
4.13 getDefinitionByName 與Casting 39
部分2 事件 40
4.14 dispatchEvent 方法 40
4.15 addEventListener 方法、removeEventListener 方法以及事件流程中的各階段 41
4.16 事件的傳播與取消 43
4.17 自定義事件 43
部分3 錯誤 45
4.18 try、catch、finally 45
4.19 自定義拋齣錯誤 46
部分4 數據結構與列錶 47
4.20 Object 47
4.21 數組 48
4.22 Vector 50
4.23 Dictionary 51
4.24 ByteArray 51
4.25 到底該使用哪種列錶 51
4.26 自定義數據結構 52
部分5 讓所有人都能讀懂你的注釋 52
4.27 底綫 53
部分6 Flash 為什麼會這麼做 53
4.28 事件流程 53
4.29 幀腳本 54
4.30 使用多個SWF 文件 56
4.31 內存垃圾迴收 57
4.32 本章小結 59
第5 章 管理資源與使用圖像 60
5.1 小議組織庫元件 61
5.2 使用圖像 61
5.3 常用的光柵圖像格式 62
5.3.1 壓縮 65
5.3.2 平滑 66
5.3.3 解塊 67
5.3.4 外部的圖像編輯工具 67
5.4 要點 67
第6 章 讓它動起來:ActionScript 動畫 68
6.1 幾個術語 68
6.1.1 緩動 69
6.1.2 序列 69
6.2 是否補間?這是個問題 69
6.3 一個由腳本驅動的簡單射擊遊戲 70
6.3.1 Projectile 類 70
6.3.2 SimpleShooter 類 70
6.4 記憶力遊戲:補間動畫 72
6.4.1 MemoryCard 類 73
6.4.2 Memory 類 73
6.5 本章小結 76
第7 章 如雷貫耳:如何使用音頻 77
7.1 常用音頻格式 77
7.2 常用導齣設置 78
7.3 使用外部文件 80
7.4 聲音編輯工具 80
7.5 編寫音效腳本 81
7.5.1 理解與聲音有關的類 81
7.5.2 SoundEngine 類 82
7.5.3 使用SoundEngine 類 91
7.5.4 SoundMixer 類 92
第8 章 重塑“視頻遊戲” 93
8.1 視頻編解碼器 93
8.2 外部視頻應用:過場與菜單 93
8.3 CutsceneManager 類 96
8.4 時間軸上的視頻 100
8.4.1 文件尺寸 100
8.4.2 庫:易於使用與雜亂無章 100
8.4.3 性能錶現 100
8.4.4 自由的動態模糊 101
8.5 建立內部視頻 101
8.6 本章小結 104
第9 章 XML 與動態內容 105
9.1 引入數據:理解URLLoader 類 105
9.2 XML 105
9.3 E4X 106
9.4 縱橫字謎 106
9.4.1 CrosswordTile 類 109
9.4.2 CrosswordClue 類 113
9.4.3 CrosswordPuzzle 類 114
9.5 內容並非隻有現成的:縱橫字謎編輯器 122
9.6 數據傳送 123
9.7 示例:XML與Flash Vars 的應用對比 124
9.8 本章小結 125
第10 章 就是一個詞兒:數學 126
部分1 Math 類 126
10.1 幾何學及三角學 126
10.2 簡要介紹一下弧度與pi 值 130
10.3 Flash 中的3D 133
13.1.1 位置 134
13.1.2 鏇轉 134
13.1.3 透視投影 134
10.4 簡單的TunnelShooter 範例 135
10.4.1 基本機製 136
10.4.2 所需類文件 136
10.4.3 Tunnel 類 136
部分2 物理學 145
10.5 標量 145
10.6 矢量 146
10.7 Vector3D 類 146
10.8 位移 146
10.9 速度 146
10.10 加速度 147
10.11 摩擦力 147
10.12 慣性 147
10.13 物理仿真與假象 147
10.14 真實性與期望值 147
10.15 範例:頂視角的驅動引擎 148
10.15.1 Vehicle 類 148
10.15.2 Time 類 149
10.15.3 Game 類 150
10.16 範例:頂視圖且帶有漂移效果的賽車遊戲 153
10.17 本章小結 155
第11 章 彆碰我 156
11.1 能力與需求 156
11.2 hitTestObject——最基本的檢測方法 156
11.3 hitTestPoint——更先進的檢測方法 157
11.4 半徑/距離檢測法——極適閤圓形的檢測方法 161
11.5 矩形邊框檢測法 162
11.5.1 新的Enemy 類 163
11.5.2 SimpleShooterCollisions類所新增的內容 164
11.5.3 該方法的一些不足之處 165
11.6 這些辦法都不靈?那就用雞尾酒療法 167
第12 章 建築師——由來已久的夢想 168
12.1 OOP 概念 168
12.1.1 封裝 168
12.1.2 繼承 169
12.1.3 多態性 169
12.1.4 接口 169
12.2 遊戲開發中的實用OOP 技巧 170
12.3 單例模式:一種良好的文檔模式 171
12.4 本章小結 173
第13 章 驛館閑談 174
13.1 簡單地進行封裝——類與容器 174
13.2 將有關數值存儲到變量與常量中 175
13.3 不要信任舞颱 176
13.4 不要使用不理解或不適用的架構或設計模式 176
13.5 要把握好嚮彆人展示自己作品的最佳時機 177
13.6 本章小結 177
第14 章 MixUp——一個簡單的遊戲引擎 178
14.1 主文檔 180
14.2 MixUP 類 180
14.3 Title 類 182
14.4 RulesPanel 類 183
14.5 Game 類 184
14.6 接口 186
14.7 GameBoard 類 188
14.8 SourceImageEmbedded 類 194
14.9 GameHistory 類與Results 類 196
14.10 SourceImageCamera 類 198
14.11 本章小結 200
第15 章 技術大融閤:製作平颱遊戲 201
15.1 平颱類型遊戲 201
15.2 數據流程 202
15.3 遊戲流程與功能 202
15.3.1 遊戲背景設定 203
15.3.2 關卡設計及牆壁的作用 203
15.3.3 齣口(portal) 203
15.3.4 玩傢角色 203
15.3.5 物品 203
15.3.6 敵人 204
15.4 關卡文件格式以及資源結構 205
15.4.1 關卡的XML 文件 205
15.4.2 資源SWF 文件 207
15.4.3 遊戲所用類的概述 208
15.5 引擎類 208
15.5.1 ISprite 接口 209
15.5.2 IPlayer 接口 209
15.5.3 IEnemy 接口 210
15.5.4 IItem 接口 210
15.5.5 IPortal 接口 211
15.5.6 IWall 接口 211
15.5.7 PlatformerEvent 類 212
15.5.8 PortalDestinations 類與PortalRequirement 類 212
15.5.9 PlatformerConfig 類 213
15.5.10 GridReference 類 213
15.5.11 CollisionGrid 類 215
15.5.12 PlatformerEngine 類 216
15.6 遊戲實現類 230
15.7 資源類 232
15.7.1 Player 類 233
15.7.2 Enemy 類 234
15.7.3 Item 類 235
15.7.4 Portal 類與Wall 類 236
15.7.5 遊戲中的資源 237
15.8 本章小結 239
第16 章 獨樂不如眾樂:開發多人遊戲 240
16.1 RTMFP 240
16.2 Stratus 240
16.3 MixUp 多人遊戲 241
16.3.1 遊戲所用的類 241
16.3.2 SourceImageWebCamera 類 242
16.3.3 ConnectionPanel 類 245
16.3.4 Title 類 246
16.3.5 Results 類 247
16.3.6 MixUp 類 248
16.4 本章小結 250
第17 章 找到就乾掉:獵蟲行動 251
17.1 Bug 251
17.1.1 trace 251
17.1.2 FlashTracer 253
17.1.3 調試器 254
17.2 性能與優化 255
17.2.1 FrameRateProfiler 類 256
17.2.2 MemoryProfiler 類 258
17.2.3 Sample 包 259
17.3 本章小結 262
第18 章 當心惡賊 263
18.1 惡意使用 263
18.1.1 關閉不再需要的事件偵聽器 263
18.1.2 為所要接受的輸入設置最低延時 264
18.1.3 一經發現惡意使用就將遊戲關閉264
18.2 數據保護 264
18.2.1 內存攻擊 264
18.2.2 數據的散列加密 265
18.2.3 拆解數據 267
18.2.4 插入誤導性數據 267
18.2.5 保護要發送與接收的數據 268
18.2.6 保護傳輸數據安全的散列加密法 268
18.2.7 矩陣加密法 268
18.3 SWF 文件保護 269
18.4 本章小結 269
附錄A 攝像頭與麥剋風 270
附錄B 本地化 276
附錄C JSFL——情人們的JavaScript 283
後記 289
· · · · · · (
收起)