本書是一本面向廣大Flash編程愛好者的游戲設計類圖書。本書從*基本的Flash游戲編程語言基礎知識開始,對游戲的原理及其Flash程序實現進行了詳細介紹,包括編程語言基礎、面向對象編程基礎、影片剪輯的控制、文本交互、鼠標和鍵盤事件的處理等。本書的*特色是通過具體案例講解Flash游戲開發,不僅可以加深讀者對知識點的掌握,更重要的是可以讓讀者學會如何開發Flash游戲。本書涉及的游戲都是大家耳熟能詳的,例如連連看、推箱子、對對碰、超級瑪麗、象棋、2.5D游戲、FlappyBird、塔防游戲等。通過本書,讓學習枯燥的Flash編程充滿樂趣。對于初、中級的Flash學習者來說,本書是一種很好的參考資料,不僅為讀者列出了完整的游戲代碼,同時對所有的源代碼進行了非常詳細的解釋,做到了通俗易懂、圖文并茂。
本書適用于游戲編程愛好者、程序設計人員和Flash編程學習者。
內容豐富、全面,其中的通用代碼可直接應用于一般的游戲。每款游戲實例均提供詳細的設計思路、關鍵技術分析以及具體的解決步驟方案。每一個游戲實例都是活的、實用的Flash游戲編程實例。
前言
Flash因其文件小、性能優異而得到全球網民的青睞,這也使得Flash成為網絡休閑游戲開發的首選平臺。游戲開發融合了很多技術與表現風格,除了要有高質量的代碼、迷人的藝術設計和良好的用戶界面,更重要的一點是要讓玩家覺得好玩。
本書作者長期從事Flash教學與應用開發,在長期的工作、學習中積累了豐富的經驗和教訓,了解在學習編程時什么樣的書能提高Flash游戲開發能力,使讀者以最少的投入收獲最大的實際成果。
本書內容:
講解Flash的基礎知識,例如圖層、幀、元件、實例、影片剪輯、庫面板、屬性面板、各種繪圖工具及其使用技巧;
講解ActionScript 3.0編程技術和技巧,例如如何利用Flash和ActionScript 3.0制作交互式游戲、平臺類游戲,有利于讀者學會面向對象的游戲設計技術,了解ActionScript 3.0程序設計的所有相關內容。本書游戲實例涵蓋了益智、射擊、棋牌、休閑、網絡等游戲。
本書特點:
內容豐富、全面,其中的通用代碼可直接應用于一般的游戲。每款游戲實例均提供了詳細的設計思路、關鍵技術分析以及具體的解決方案。每一個游戲實例都是實用的Flash游戲編程實例。
本書是幫助讀者自娛自樂、創造美好生活、步入Flash游戲程序員行列的敲門磚。
需要說明的是,學習游戲動畫編程是一個實踐的過程,而不僅僅是看書、看資料的過程,親自動手編寫、調試程序才是至關重要的。通過實際的編程以及積極的思考,讀者可以很快地掌握很多的編程技術,而且在編程中讀者會積累許多寶貴的編程經驗。在當前的軟件開發環境下,這種編程經驗對開發者尤其顯得不可或缺。
本書由夏敏捷和楊要科(中原工學院)主持編寫,張西廣編寫第2章,徐飛編寫第3章,楊要科編寫第8~12章,王佩雪編寫第16章,張俊寶編寫第20章和第21章,其余章節由夏敏捷編寫。在本書的編寫過程中,為確保內容的正確性,參閱了很多資料,并且得到了中原工學院計算機學院鄭秋生教授和資深Flash程序員的支持,在此謹向他們表示衷心的感謝。
由于編者水平有限,書中難免有不足之處,敬請廣大讀者批評指正,在此表示感謝。
編者電子信箱: jsjjc_33@163.com。
夏敏捷2017年10月
目錄
第1章Flash的基礎知識
1.1初識Flash CS6
1.1.1Flash的發展歷程
1.1.2動畫的概念及原理
1.1.3Flash動畫的特點
1.1.4Flash CS6工作界面
1.2圖形制作
1.2.1手工繪圖工具
1.2.2圖形工具
1.2.3顏色工具
1.2.4文本工具
1.2.5Deco工具
1.2.63D旋轉工具和3D平移工具
1.3元件和庫
1.3.1元件的類型
1.3.2創建元件
1.3.3庫
1.4基本動畫制作
1.4.1逐幀動畫
1.4.2傳統補間動畫
1.4.3補間形狀動畫
1.4.4補間動畫
1.4.5動畫預設
1.5高級動畫制作
1.5.1創建運動引導層動畫
1.5.2創建遮罩動畫
1.5.3創建骨骼動畫
第2章ActionScript 3.0腳本編程語言基礎
2.1ActionScript 3.0發展概述
2.2Flash CS6的動作面板介紹
2.3ActionScript的語法
2.4ActionScript的數據類型和變量
2.4.1ActionScript的數據類型
2.4.2ActionScript的變量
2.5ActionScript的運算符與表達式
2.6ActionScript的函數
2.6.1認識函數
2.6.2定義函數
2.6.3函數返回值
2.6.4函數調用
2.6.5函數的參數
2.6.6函數作為參數
2.7類和包
2.8顯示列表
2.8.1顯示對象的一些基本概念
2.8.2DisplayObject類的子類
2.8.3管理顯示對象
2.9事件
2.9.1與鼠標相關的操作事件
2.9.2與鍵盤相關的操作事件
2.9.3幀事件
2.9.4計時事件
2.9.5刪除事件偵聽器
2.9.6事件流
2.10動作腳本基本命令
2.10.1時間軸控制命令
2.10.2顯示輸出命令
2.11ActionScript代碼的位置
2.11.1在幀中編寫ActionScript程序代碼
2.11.2在外部類文件中編寫ActionScript程序代碼
2.11.3一個簡單的Flash應用程序
第3章ActionScript 3.0程序控制
3.1選擇結構
3.1.1if語句
3.1.2ifelse語句
3.1.3switch語句
3.2循環結構
3.2.1for語句
3.2.2forin和for eachin語句
3.2.3while語句
3.2.4循環的嵌套
3.2.5break和continue語句
3.3影片剪輯的控制
3.3.1影片剪輯元件的基本屬性
3.3.2控制影片剪輯元件的時間軸
3.3.3復制與刪除影片剪輯
3.3.4拖曳影片剪輯
3.4鼠標、鍵盤和聲音的控制
3.4.1鼠標的控制
3.4.2鍵盤的控制
3.4.3聲音的控制
3.5Flash的文本交互
3.5.1文本類型
3.5.2文本實例名稱
第4章面向對象編程基礎
4.1對象和類
4.1.1創建自定義的類
4.1.2類的構造函數
4.1.3類的屬性的訪問級別
4.1.4get() 和set()方法
4.2繼承
4.2.1繼承的定義
4.2.2屬性和方法的繼承
4.2.3重寫
4.2.4MovieClip和Sprite 子類
4.3多態
4.4包外類
4.5鏈接類
4.6文檔類
4.7動態類
第5章數組與字符串
5.1數組
5.1.1數組新增元素
5.1.2刪除數組中的元素
5.1.3數組排序
5.1.4從數組中獲取元素
5.1.5數組轉換為字符串
5.1.6多維數組
5.2字符串
5.2.1字符串的定義
5.2.2提取子字符串
5.2.3字符串的拆分和合并
5.2.4獲取字符串指定位置的字符
5.2.5在字符串中搜索
5.2.6字符串的大小寫轉換
5.2.7字符串的比較和排序
第6章ActionScript的繪圖功能
6.1Graphics類
6.2繪制圖形
6.2.1畫線
6.2.2畫曲線
6.2.3畫矩形
6.2.4畫圓
6.2.5畫橢圓
6.3位圖處理
6.3.1Bitmap類和BitmapData類
6.3.2復制位圖里的部分像素
6.3.3使用BitmapData類滾動位圖
第7章拼圖游戲
7.1拼圖游戲介紹
7.2拼圖游戲的設計思路
7.2.1制作33圖塊
7.2.2隨機排列圖塊
7.2.3鍵盤輸入信息的獲取
7.2.4移動圖塊的方法
7.2.5判斷拼圖是否完成的方法
7.3拼圖游戲的設計步驟
7.3.1創建Flash文件
7.3.2設計文檔類
第8章連連看游戲
8.1連連看游戲介紹
8.2連連看游戲的設計思路
8.2.1連連看游戲的數據模型
8.2.2動物方塊的布局
8.2.3連通算法
8.2.4智能查找功能的實現
8.3關鍵技術
8.3.1使用ActionScript 3.0 刪除容器的所有子對象
8.3.2Point 對象
8.4連連看游戲的設計步驟
8.4.1創建Flash文件
8.4.2設計LinkType類
8.4.3設計文檔類
第9章看圖猜成語游戲
9.1看圖猜成語游戲介紹
9.2看圖猜成語游戲的設計思路
9.2.1游戲素材
9.2.2設計思路
9.3看圖猜成語游戲的設計步驟
9.3.1創建Flash文件
9.3.2設計影片剪輯
9.3.3動作腳本
9.3.4設計文字方塊類(Letter.as)
第10章雷電飛機射擊游戲
10.1雷電飛機射擊游戲介紹
10.2雷電飛機射擊游戲的設計思路
10.2.1游戲素材
10.2.2地圖滾動的實現
10.2.3飛機和子彈的實現
10.2.4主角飛機子彈與敵機的碰撞檢測
10.3雷電飛機射擊游戲的設計步驟
10.3.1創建Flash文件
10.3.2動作腳本
第11章撲克牌金字塔游戲
11.1撲克牌金字塔游戲介紹
11.2撲克牌金字塔游戲的設計思路
11.2.1游戲素材
11.2.2設計思路
11.3撲克牌金字塔游戲的設計步驟
11.3.1創建Flash文件
11.3.2設計Card類
11.3.3設計文檔類
第12章黑白棋游戲
12.1黑白棋游戲介紹
12.2黑白棋游戲的設計思路
12.2.1棋子和棋盤
12.2.2翻轉對方的棋子
12.2.3顯示執棋方的可落子位置
12.2.4判斷勝負功能
12.3黑白棋游戲的設計步驟
12.3.1創建Flash文件
12.3.2設計文檔類
第13章漢諾塔游戲
13.1漢諾塔游戲介紹
13.2漢諾塔游戲的設計思路
13.3關鍵技術
13.3.1盤子影片剪輯對象的拖動
13.3.2加載n個盤子對象
13.3.3遞歸解決漢諾塔盤子移動
13.3.4以動畫效果移動盤子
13.4漢諾塔游戲的設計步驟
13.4.1創建Flash文件
13.4.2設計文檔類
第14章對對碰游戲
14.1對對碰游戲介紹
14.2對對碰游戲的設計思路
14.2.1游戲素材
14.2.2設計思路
14.2.3動態生成有效的88方塊
14.2.4尋找3個匹配的方塊
14.2.5上方的方塊下落
14.2.6在本列上方添加方塊
14.2.7查找可能的移動
14.3對對碰游戲的設計步驟
14.3.1創建Flash文件
14.3.2設計文檔類
第15章Flappy Bird游戲
15.1Flappy Bird游戲介紹
15.2Flappy Bird游戲的設計思路
15.3Flappy Bird游戲的設計步驟
15.3.1創建Flash文件
15.3.2設計游戲文檔類(flappybird.as)
第16章中國象棋
16.1中國象棋介紹
16.2中國象棋的設計思路
16.2.1棋盤的表示
16.2.2棋子的表示
16.2.3走棋規則
16.3.4坐標轉換
16.3中國象棋的設計步驟
16.3.1設計棋子類
16.3.2創建Flash文件
16.3.3設計文檔類
第17章超級瑪麗游戲
17.1超級瑪麗游戲介紹
17.2超級瑪麗游戲的設計思路
17.2.1游戲素材
17.2.2背景地圖的實現
17.2.3播放聲音
17.2.4解決主角圖像翻轉
17.2.5解決多個按鍵檢測
17.2.6整體實現流程
17.3超級瑪麗游戲的設計步驟
17.3.1創建Flash文件
17.3.2設計敵人怪物類
17.3.3設計圖塊類
17.3.4設計地圖背景類
17.3.5設計主角類
17.3.6設計場景類
17.3.7設計文檔類
第18章智力測試游戲
18.1智力測試游戲介紹
18.2智力測試游戲的設計思路
18.3關鍵技術
18.3.1組件概述
18.3.2用戶界面組件
18.3.3用Flash處理XML文檔數據
18.4智力測試游戲的設計步驟
18.4.1創建Flash文件
18.4.2設計文檔類
第19章推箱子游戲
19.1推箱子游戲介紹
19.2推箱子游戲的設計思路
19.3推箱子游戲的設計步驟
19.3.1創建Flash文件并設計影片剪輯
19.3.2設計地圖單元類
19.3.3設計地圖管理類
19.3.4設計文檔類
第20章2.5D游戲
20.12.5D游戲介紹
20.22.5D游戲的設計思路
20.32.5D游戲的設計步驟
20.3.1創建Flash文件
20.3.2設計人物類
20.3.3設計文檔類
第21章塔防游戲
21.1塔防游戲介紹
21.2塔防游戲的設計思路
21.3塔防游戲的設計步驟
21.3.1創建Flash文件
21.3.2設計敵人類(Enemy.as)
21.3.3設計炮塔類(Gun.as)
21.3.4設計子彈類(Bullet.as)
21.3.5設計游戲文檔類(dMain.as)
第22章兩人麻將游戲
22.1兩人麻將游戲介紹
22.2兩人麻將游戲的設計思路
22.2.1素材圖片
22.2.2游戲的邏輯實現
22.2.3碰吃牌判斷
22.2.4胡牌算法
22.2.5實現計算機智能出牌
22.3兩人麻將游戲的設計步驟
22.3.1創建Flash文件
22.3.2設計麻將牌類(Card.as)
22.3.3設計游戲文檔類(Main.as)
第23章關燈游戲
23.1關燈游戲介紹
23.2關燈游戲的設計思路
23.3關燈游戲的設計步驟
23.3.1創建Flash文件
23.3.2設計電燈類(LightClass.as)
23.3.3設計游戲文檔類(Main.as)
參考文獻