目 錄
第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 7
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程序開發術語 9
1.5.1 舞颱 9
1.5.2 顯示對象 9
1.5.3 事件和偵聽器 9
1.5.4 包 9
1.5.5 創作時事件、編譯時事件及
運行時事件 10
1.6 醒一醒 10
第2章 最佳編程工具 11
2.1 倒敘幾句 11
2.2 Flash的一些優點 12
2.2.1 玩傢占有率 12
2.2.2 靈活性 12
2.2.3 上市速度 12
2.2.4 美觀性 13
2.3 白璧微瑕 13
2.3.1 缺點:代碼編輯器 13
2.3.2 解決方案:使用附加工具 14
2.3.3 缺點:性能及內存管理 14
2.3.4 解決方案:使用第三方解
決方案或自己創建 15
2.3.5 缺點:內容調試 16
2.3.6 解決方案:使用跟蹤輸齣
與自定義工具 16
2.3.7 缺點:缺乏內建遊戲庫和
工具 17
2.3.8 解決方案:自己開發工具
或尋找開源工具 17
2.4 不要和Flash對抗 17
2.5 Flash所能創建的內容 18
2.5.1 動畫與遊戲 18
2.5.2 應用程序與遊戲 18
2.5.3 網站與遊戲 18
2.5.4 Flash與傳統遊戲開發 19
2.6 最佳創作工具 19
第3章 一份計劃抵得上1000片阿司
匹林 20
3.1 步驟1 20
3.2 步驟2 20
3.3 步驟3 21
3.4 步驟4 23
3.5 步驟5 24
3.6 步驟6(可選) 26
第4章 //注釋太棒瞭! 29
4.1 適當的提醒 29
4.2 部分1:類 29
4.2.1 包 30
4.2.2 類就像文件一樣 30
4.2.3 構造函數 30
4.2.4 常量、變量與方法 31
4.2.5 getter與setter方法 32
4.2.6 類標識符 33
4.2.7 繼承與多態 34
4.2.8 接口 36
4.2.9 將Flash中的資源與類鏈接
起來 38
4.2.10 類與基類 39
4.2.11 使用沒有類文件的導齣元件 41
4.2.12 getDefinitionByName與
Casting 41
4.3 部分2:事件 42
4.3.1 dispatchEvent方法 42
4.3.2 addEventListener方法、removeEventListener方法以及
事件流程中的各階段 43
4.3.3 事件的傳播與取消 46
4.3.4 自定義事件 46
4.4 部分3:錯誤 47
4.4.1 try、catch、finally 48
4.4.2 拋齣自定義錯誤 49
4.5 部分4:數據結構與列錶 50
4.5.1 Object 50
4.5.2 數組 51
4.5.3 Vector 53
4.5.4 Dictionary 53
4.5.5 ByteArray 54
4.5.6 到底該使用哪種列錶 54
4.5.7 自定義數據結構 55
4.6 部分5:讓所有人都能讀懂你的注釋 55
4.7 部分6:Flash為什麼會這麼做 56
4.7.1 事件流程 56
4.7.2 幀腳本 57
4.7.3 使用多個SWF文件 59
4.7.4 內存垃圾迴收 60
4.8 本章小結 62
第5章 最低要求與架構師所采用的
方法 63
5.1 簡單地進行封裝——類與容器 63
5.2 將有關數值存儲到變量與常量中 64
5.3 不要信任舞颱 65
5.4 不要使用不理解或不適用的架構或
設計模式 65
5.5 要把握好嚮彆人展示自己作品的
最佳時機 66
5.6 轉換到架構 66
5.7 OOP概念 66
5.7.1 封裝 67
5.7.2 繼承 67
5.7.3 多態性 68
5.7.4 接口 68
5.8 遊戲開發中的實用OOP技巧 69
5.9 單例模式:一種良好的文檔模式 70
5.10 本章小結 72
第6章 管理資源與使用圖像 73
6.1 一種更好的文件格式 73
6.2 小議組織庫元件 74
6.3 使用圖像 75
6.4 常用的光柵圖像格式 76
6.4.1 壓縮 79
6.4.2 平滑 80
6.4.3 解塊 80
6.4.4 外部的圖像編輯工具 80
6.5 本章小結 82
第7章 讓它動起來:ActionScript
動畫 83
7.1 幾個術語 83
7.1.1 緩動 83
7.1.2 序列 84
7.2 是否補間?這是個問題 84
7.3 由腳本驅動的簡單射擊遊戲 85
7.3.1 Projectile類 85
7.3.2 SimpleShooter類 85
7.4 記憶力遊戲:補間動畫 88
7.4.1 MemoryCard類 88
7.4.2 Memory類 89
7.5 本章小結 93
第8章 如雷貫耳:如何使用音頻 94
8.1 常用音頻格式 94
8.2 常用導齣設置 95
8.3 使用外部文件 97
8.4 聲音編輯工具 98
8.5 編寫音效腳本 98
8.5.1 理解與聲音有關的類 99
8.5.2 SoundEngine類 99
8.5.3 使用SoundEngine類 111
8.5.4 SoundMixer類 114
第9章 重塑“視頻遊戲” 116
9.1 視頻編解碼器 116
9.2 外部視頻應用:過場與菜單 116
9.3 CutsceneManager類 119
9.4 時間軸上的視頻 125
9.4.1 文件尺寸 125
9.4.2 庫:易於使用與雜亂無章 126
9.4.3 性能錶現 126
9.4.4 自由的動態模糊 126
9.5 建立內部視頻 126
9.6 本章小結 129
第10章 XML與動態內容 130
10.1 引入數據:理解URLLoader類 130
10.2 XML 130
10.3 E4X 131
10.4 縱橫字謎 132
10.4.1 CrosswordTile類 135
10.4.2 CrosswordClue類 138
10.4.3 CrosswordPuzzle類 140
10.5 內容並非隻有現成的:縱橫字謎
編輯器 150
10.6 數據傳送 151
10.7 示例:XML與Flash Vars的應用
對比 151
10.8 本章小結 153
第11章 就是一個詞兒:數學 154
11.1 Math類 154
11.2 部分1:幾何學及三角學 154
11.3 簡要介紹一下弧度與Pi值 158
11.4 Flash中的3D 161
11.4.1 位置 162
11.4.2 鏇轉 162
11.5 透視投影 163
11.6 Simple TunnelShooter範例 164
11.6.1 基本機製 164
11.6.2 所需類文件 164
11.6.3 Tunnel類 165
11.7 部分2:物理學 179
11.7.1 標量 179
11.7.2 矢量 179
11.7.3 Vector3D類 179
11.7.4 位移 180
11.7.5 速度 180
11.7.6 加速度 180
11.7.7 摩擦力 180
11.7.8 慣性 180
11.7.9 物理仿真與假象 181
11.7.10 真實性與期望值 181
11.8 範例:頂視角的驅動引擎 181
11.8.1 Vehicle類 181
11.8.2 Time類 184
11.8.3 Game類 185
11.9 範例:頂視角且帶有漂移效果的
賽車遊戲 189
11.10 本章小結 192
第12章 彆碰我:碰撞檢測技術 193
12.1 能力與需求 193
12.2 hitTestObject——最基本的檢測
方法 193
12.3 hitTestPoint——更先進的檢測
方法 194
12.4 半徑/距離檢測法——極適閤圓形
的檢測方法 199
12.5 矩形邊框檢測法 201
12.5.1 新的Enemy類 201
12.5.2 SimpleShooterCollisions類
所新增的內容 202
12.5.3 該方法的一些不足之處 204
12.6 像素級精確的碰撞偵測與物理
仿真 205
12.7 這些辦法都不靈?那就用雞尾酒
療法 206
第13章 MixUp——簡單的遊戲引擎 207
13.1 主文檔 209
13.2 MixUP類 209
13.3 Title類 212
13.4 RulesPanel類 212
13.5 Game類 213
13.6 接口 216
13.7 GameBoard類 218
13.8 SourceImageEmbedded類 225
13.9 GameHistory類與Results類 227
13.10 SourceImageCamera類 229
13.11 本章小結 232
第14章 技術大融閤:製作平颱遊戲 233
14.1 平颱類型遊戲 233
14.2 數據流程 234
14.3 遊戲流程與功能 234
14.3.1 遊戲背景設定 235
14.3.2 關卡設計及牆壁的作用 235
14.3.3 齣口 235
14.3.4 玩傢角色 235
14.3.5 物品 236
14.3.6 敵人 236
14.4 關卡文件格式以及資源結構 237
14.4.1 關卡的XML文件 237
14.4.2 資源SWF文件 240
14.4.3 遊戲所用類的概述 240
14.5 引擎類 241
14.5.1 ISprite接口 241
14.5.2 IPlayer接口 242
14.5.3 IEnemy接口 243
14.5.4 IItem接口 243
14.5.5 IPortal接口 244
14.6 IWall接口 244
14.6.1 PlatformerEvent類 245
14.6.2 PortalDestinations類與PortalRequirement類 245
14.6.3 PlatformerConfig類 246
14.6.4 GridReference類 247
14.7 CollisionGrid類 249
14.8 遊戲實現類 267
14.9 資源類 269
14.9.1 Player類 269
14.9.2 Enemy類 271
14.9.3 Item類 272
14.9.4 Portal類與Wall類 273
14.9.5 遊戲中的資源 275
14.10 本章小結 277
第15章 Marble Runner:我們的
第一款手機遊戲 278
15.1 部分1:開發iOS遊戲的最佳
實踐 278
15.1.1 濾鏡(包括由PixelBender所創建的濾鏡) 279
15.1.2 矢量圖形(及形狀補間) 279
15.1.3 文本處理 280
15.1.4 補間動畫 280
15.1.5 繪圖API、遮罩以及混閤
模式 281
15.1.6 運行時加載的SWF文件 281
15.2 利用GPU 281
15.3 代碼也很關鍵 282
15.3.1 聲明類型 283
15.3.2 使用靜態屬性與函數 283
15.3.3 確定最終答案 283
15.3.4 放之四海而皆準的垃圾
迴收 284
15.3.5 避免使用極其龐大的架構
和庫 284
15.3.6 減少顯示列錶層級 285
15.3.7 無需用事件來處理函數所
擅長之處 285
15.4 權衡:繼承還是接口 286
15.5 程序實例 286
15.5.1 XFL文檔 287
15.5.2 Space.as 287
15.5.3 Rock.as 288
15.5.4 文檔類SpaceRocks.as 290
15.5.5 FrameRateProfiler類 292
15.6 部分2:Marble Runner 293
15.7 Accelerometer類 293
15.8 加速計數據是如何計算齣來的 294
15.9 Marble Runner遊戲 295
15.9.1 XFL文件 296
15.9.2 遊戲所用到的類 296
15.9.3 LabyrinthEngine 297
15.9.4 LabyrinthLevel 303
15.9.5 IBall、IHazard、IWall 306
15.9.6 基本文檔類 307
15.9.7 標題界麵類 309
15.9.8 得分排行榜界麵類 310
15.9.9 GameClip類 314
15.9.10 Marble類 317
15.9.11 HazardPit和
StandardWall類 320
15.9.12 Results類 321
15.10 遊戲設計注意事項 323
15.10.1 關卡設計 323
15.10.2 風險與迴報 323
15.11 有待改進之處 324
15.11.1 計分 324
15.11.2 可拾取物品 324
15.11.3 可捲動的關卡 324
第16章 桌上冰球:采用多點觸摸的
平闆電腦多人遊戲 325
16.1 主題三重奏 325
16.2 移動設備的多點觸摸輸入方式 326
16.3 有限狀態機 326
16.4 利用Box2D來進行物理仿真 327
16.5 雙人桌上冰球遊戲 328
16.5.1 XFL文件 328
16.5.2 遊戲所用類 329
16.5.3 Main.as 329
16.5.4 Title.as 331
16.5.5 Rules.as 331
16.5.6 GameTouchController.as 333
16.5.7 Game.as 336
16.5.8 AirHockeyEngine.as 345
16.5.9 準備創建 353
16.6 本章小結 353
第17章 找到就乾掉:獵蟲行動 354
17.1 bug 354
17.1.1 trace 354
17.1.2 Flash Tracer 356
17.1.3 調試器 357
17.2 性能與優化 358
17.2.1 FrameRateProfiler類 359
17.2.2 MemoryProfiler類 362
17.2.3 sampler包 366
17.3 本章小結 369
第18章 當心惡賊 370
18.1 惡意使用 370
18.1.1 關閉不再需要的事件偵
聽器 370
18.1.2 為所要接受的輸入設置最低延時 371
18.1.3 一經發現惡意使用就將遊戲關閉 371
18.2 數據保護 371
18.2.1 內存攻擊 371
18.2.2 保護要發送與接收的數據 375
18.3 SWF文件保護 376
18.4 本章小結 377
第19章 移動開發介紹 378
19.1 移動設備:新的熱點 378
19.2 新增API 379
19.3 開發流程:先A後I 379
19.3.1 編譯 379
19.3.2 程序設置與設計 381
19.4 第一個iPhone程序 382
19.4.1 開發者證書 382
19.4.2 UDID 385
19.4.3 AppID 386
19.4.4 供給配置文件 387
19.4.5 DemoApp 388
19.4.6 XFL文件 388
19.4.7 文檔類 389
19.5 僅是開端 394
19.6 改變設置 395
19.6.1 文檔分辨率 395
19.6.2 發布設置 396
19.6.3 部署 398
19.7 本章小結 398
後記 Flash在遊戲業中的前景 399
附錄A 攝像頭與麥剋風 400
附錄B 本地化 408
附錄C JSFL——情人們的
JavaScript 415
附錄D 使用AMFPHP開發遊戲 422
· · · · · · (
收起)