


摘要:Flash不僅擁有動畫創作的能力,同時因其內嵌的ActionScript3.0腳本語言,故而Flash還能進行應用程序的開發工作。ActionScript3.0是一種面向對象的編程語言,使用ActionScript3.0可以控制Flash動畫中的對象,增強動畫創作的交互性。該文是基于Flash和ActionScript3.0來設計制作的一個簡單的九宮格數字華容道拼圖游戲。
關鍵詞:Flash;ActionScript3.0;拼圖游戲
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2019)34-0066-03
1 數字華容道拼圖游戲簡介和玩法
1.1 游戲簡介
拼圖游戲是常見的益智游戲之一,在各種數字智能終端設備(手機、平板、筆記本電腦等)下都可以通過網絡搜索、下載、安裝和娛樂,受到很多網民的歡迎。本文中的游戲為數字華容道的3*3九宮格數字拼圖,游戲玩家通過使用鍵盤的上下左右鍵來移動數字圖形方塊,最終使得數字按照規律進行排列,達到最終的效果,如圖3,此時游戲完成。
其中圖1是游戲剛啟動時的效果,圖2是游戲進行中的效果,圖3是游戲完成后的效果。
1.2 游戲具體玩法
玩家在拼圖的過程中,如果拼圖步驟不對,需要重新開始一次游戲,可以直接鼠標單擊游戲界面上的“再玩一次”按鈕或者按鍵盤上空格鍵,都可以重置游戲。所有數字圖塊的位置都排列正確后,畫面上將顯示“你真棒o(n_n)o”幾個文字和符號,表示數字華容道的拼圖被正確拼好。
2 游戲創作過程
2.1 利用Photoshop制作華容道九宮格數字圖塊
1)首先需要在Photoshop中制作一張素材圖片:“數字華容道拼圖初始圖.jpg”,大小為150像素*150像素,如圖4,由于制作過程相對比較簡單,在此不再贅述,Photoshop制作過程圖,如圖5所示。
2)啟動Flash,使用“文件”一“新建”(Ctrl+N)一“Action-Script3.0”命令,新建一個Flash文件,文檔背景顏色設置為灰色,寬550像素,高400像素。
3)然后在Flash中選擇“文件”一“導入”一“導入到舞臺”命令,將Photoshop中制作好的“數字華容道拼圖初始圖.jpg”導入影片。
4)使用“選擇工具”按鈕,單擊選中圖片,使用快捷鍵Ctrl+B(分離),將圖片進行打散。再調出標尺(快捷鍵Ctrl+Shift+Alt+R),利用輔助線對圖片進行劃分,分成九宮格,如圖6所示。
5)拼圖游戲需要使用鍵盤上的上下左右鍵進行移動數字圖塊,故在制作游戲的過程中,需要將每一塊數字圖塊轉換成影片元件。利用“選擇工具”,框選“數字1”數字圖塊,“數字1”數字圖塊轉換為元件前,內容需要進行修改,因此需要選中“數字1”數字圖塊,然后選中“屬性面板”,將其顏色“填充”設置為綠色(當然也可以選擇其他顏色),這樣第一塊圖形就被填充為綠色,這樣可作為空白塊使用。然后使用快捷鍵F8(轉換為元件),將“數字1”圖塊轉換為元件,類型為:影片剪輯,并命名為“Shul”。
6)重復上一步的做法,分別轉換其他數字圖塊為影片剪輯元件:Shu2 -,Shu9。
(7)選中每個數字圖塊,分別將“屬性”面板中的“實例”設置為:S1、S2、S3-,S9。
2.2 重新排列數字圖塊
第一次運行游戲或者重置游戲時,都需要實現數字圖塊的重新排列。具體的實現思路是:先將9個數字圖塊實例放置在一個數組sz- Arr中。然后在第一次運行游戲或者重置游戲時,每個數字圖塊實例在數組中的索引進行隨機交換。然后根據每個圖塊實例在數組中的索引號,實現重新排列實例圖塊在舞臺中的位置。具體代碼如下圖7和圖8。
2.3 獲取鍵盤上的按鍵信息
玩家通過鍵盤上的上下左右鍵進行移動空白圖塊從而使得拼圖游戲能夠進行,如果玩家在游戲中途離開或者拼錯,可以按鍵盤上的空格鍵進行重置游戲。我們需要通過pressKey-board0函數來實現按下鍵盤上的不同按鍵從而實現不同的處理,具體代碼如圖9。
2.4 數字圖塊交換函數
數字圖塊的交換,就是使得數字圖塊的索引號進行交換,然后重新排列每一個數字圖塊在舞臺中的位置。Interchange(r,c)將空數字圖塊移動到指定目標位置,函數的參數r、c分別行號與列號。空數字圖塊原來的位置是(k_Row,k_Col)。具體代碼如圖10。
2.5 判斷拼圖是否完成的方法
判斷是否拼圖完成是根據sz—Arr數組中,各數字圖塊實例的索引順序是否一定是(SI,S2…S9],因此只需判斷sz- Arr數組中的實例元素是否是按照此順序排列的即可。具體代碼如圖11所述:
3 拼圖游戲實現的步驟
3.1 創建Flash文件
1)使用“文件”一“新建”(CtrI+N)→“ActionScript3.0”命令,新建一個Flash文件,設置文檔背景色:灰色,文檔大小為:寬550像素,高400像素。在屬性面板設置文檔類為DigitaIHua-rongRoad。
2)在工具面板中選擇文本工具,在場景舞臺上中間區域寫上“你真棒o(n_n)o”文字和符號,并在屬性面板中將文本設置為動態文本,并將實例命名為Finish_Text。
3)添加重置游戲按鈕Reset_btn:選擇“窗口”→“公用庫”→“Buttns”→“buttons bar”→“bar bule”,使用鼠標拖拽一個按鈕到舞臺上,然后將按鈕上的文本修改為:“再來一次”,點擊“屬性”面板,將實例名修改為Reset_btn。
3.2 設計文檔類
選擇“文件”一“新建”選項,在窗口中選擇“ActionScript文件”選項。新建一個ActionScript類文件,命名為DigitaIHua-rongRoad.as.并保存到剛剛創建Flash文件所在的文件夾中。
4 結束語
以上是使用Flash及其內嵌的ActionScript3.0腳本語言進行設計和制作一個數字華容道的拼圖小游戲的整個設計思路和具體流程。
我們使用Flash中的工具和命令來制作切分數字圖塊,然后添加起重置作用的按鈕和當拼圖完成時能夠出現的文本:“你真棒o(n_n)o”,這些就是游戲前端的內容;對于如何讓游戲動起來,那就要涉及游戲的靈魂——游戲編程。我們把游戲中需要實現的效果通過編程寫出具體的代碼,然后把它封裝到DigitaIHuarongRoad類中。游戲前端的對象可以通過調用Digit-alHuarongRoad類中具體的屬性和方法來實現游戲的最終效果。
當然本文只是設計制作了一個比較簡單的3階(九宮格)的數字華容道,那么同理也可以制作4階,5階……n階的數字華容道,數字華容道的階數n越大游戲難度越大,如果再給游戲添加上關卡,就可以將游戲難度設置成由易到難的狀態,游戲玩家可以由簡單到復雜的玩游戲,這比較符合人們在實際生活中玩游戲時候的場景。
參考文獻:
[1] Rex Van Der Spuy.Foundation Game Design with Flash[M].李鑫,陳文登,付斌,譯.北京:人民郵電出版社,2011.
[2] Rex Van Der Spuy. Foundation Game Design with Action-Script 3.O[M].Univ California- Berkeley:Apress,2012.
[3]朱治國,繆亮,陳艷麗.Flash ActionScript 3.0編程技術教程[M].北京:清華大學出版社,2008.
[4]劉本軍,李登豐.Flash ActionScript 3.0互動設計項目教程[M].北京:人民郵電出版社,2015.
【通聯編輯:光文玲】
收稿日期:2019-08-22
作者簡介:徐東霞(1986-),女,江蘇贛榆人,江南影視藝術職業學院,助教,主要研究方向為軟件技術、數字媒體技術、游戲方向。