任 燕 曾金輝
(遵義師范學(xué)院計(jì)算機(jī)與信息科學(xué)學(xué)院,貴州 遵義 563002)
在這個(gè)網(wǎng)絡(luò)發(fā)達(dá)的信息化時(shí)代,各種游戲如雨后春筍般涌現(xiàn)出來(lái),比如有動(dòng)作的、冒險(xiǎn)的、策略的、射擊的等等;游戲可以使人放松,因此現(xiàn)在已經(jīng)很少有完全沒(méi)接觸過(guò)游戲的人存在了,游戲已漸漸成為人類文化藝術(shù)的一個(gè)重要組成部分。由于很多人都會(huì)沉溺于游戲中不能自拔,影響了他們的正常生活,所以現(xiàn)在游戲開(kāi)發(fā)者也越來(lái)越傾向于開(kāi)發(fā)益智類、接近生活類的游戲,如棋類游戲、球類游戲等。游戲的實(shí)質(zhì)是一種交互式的應(yīng)用軟件,具備著交互、系統(tǒng)、畫(huà)面、聲音等元素的游戲才是一個(gè)完整的游戲。制作游戲的方法多種多樣,而制作出的游戲也各有特色,當(dāng)人們將注意力重心轉(zhuǎn)移到簡(jiǎn)易與輕松的時(shí)候,F(xiàn)lash 游戲就一躍進(jìn)入了人們的眼簾。
Flash 是一種交互式動(dòng)畫(huà)設(shè)計(jì)工具,用它可以將音樂(lè)、聲效、動(dòng)畫(huà)以及富有新意與創(chuàng)意的界面融合在一起,以制作出高品質(zhì)的動(dòng)畫(huà)游戲效果。Flash 使用矢量圖形和流式播放技術(shù),與位圖圖形不同的是,矢量圖形可以任意縮放尺寸并且不影響圖形的質(zhì)量,生成的影片文件所占體積?。涣魇讲シ偶夹g(shù)使得動(dòng)畫(huà)游戲可以邊播放邊下載,從而緩解了玩家焦急等待的情緒。Flash 游戲的算法實(shí)現(xiàn),主要依賴于腳本即Flash 自身的ActionScript 語(yǔ)言,它是一種面向?qū)ο蟮某绦蛘Z(yǔ)言,它可以控制Flash 中的對(duì)象,創(chuàng)建各種元素,擴(kuò)展Flash 的交互能力和應(yīng)用能力,將ActionScript 使用好,將是游戲制作成功的關(guān)鍵。使用Flash 制作的游戲擁有各種分類,最常見(jiàn)的類型主要有3 類,即:動(dòng)作類(ACT),解謎類(AVG)與角色扮演類(RPG)。
我們知道,很多人長(zhǎng)時(shí)間地待在一個(gè)地方一刻不停地工作,很難得到適當(dāng)?shù)男菹?,即使有空余時(shí)間休息,休息的時(shí)間也比較短暫,如果有不需要花太多時(shí)間、能速戰(zhàn)速?zèng)Q的游戲,那么我們就可以在短時(shí)間內(nèi)獲得放松,因此有必要開(kāi)發(fā)一個(gè)小型的Flash 動(dòng)畫(huà)游戲。按類型分類,五子棋游戲應(yīng)該歸類于解謎類游戲(AVG)之中的休閑小類,它是一種兩個(gè)人對(duì)弈的純策略型棋類游戲,屬于益智型游戲,起源于中國(guó)古代的傳統(tǒng)的黑白棋種之一。最初是在日本發(fā)展起來(lái)的,在歐美比較流行。它簡(jiǎn)單易懂,操作方便,適合工作學(xué)習(xí)之余想要放松自己的人群,同時(shí)也適合于對(duì)兒童進(jìn)行邏輯思維能力的培養(yǎng)鍛煉。
經(jīng)過(guò)上面的需求分析,此五子棋游戲系統(tǒng)應(yīng)包含系統(tǒng)初始化模塊、下棋模塊和結(jié)束模塊3 大功能模塊,其中下棋模塊又包含初始化棋盤模塊、玩家下棋模塊和電腦下棋模塊3個(gè)子模塊。功能分別描述如下:
(1)系統(tǒng)初始化模塊:顯示游戲規(guī)則,并進(jìn)入游戲。
(2)下棋模塊:為電腦和玩家繪制且顯示棋子,并為電腦分析最佳位置。
(3)初始化棋盤模塊:設(shè)置電腦在棋盤中間固定位置下一個(gè)白棋子,并提示玩家接下一個(gè)棋。
(4)玩家下棋模塊:為玩家繪制并顯示一個(gè)黑棋子。
(5)結(jié)束模塊:判斷并顯示輸贏,然后重新開(kāi)始或退出游戲。
游戲運(yùn)行之后會(huì)顯示游戲規(guī)則,在此處點(diǎn)擊進(jìn)入游戲按鈕即可開(kāi)始游戲。首先會(huì)初始化棋盤,電腦會(huì)下第一個(gè)點(diǎn)(白子),此時(shí)等待玩家落子(黑子),玩家落子后系統(tǒng)會(huì)判斷此時(shí)誰(shuí)達(dá)到了贏的條件,若都沒(méi)有達(dá)到,輪到電腦思考、下棋,再判斷,再交替,直到玩家或電腦達(dá)到贏的條件,此時(shí)顯示結(jié)果并可選擇是否重新開(kāi)始或退出游戲。
(1)初始化棋盤模塊:在這個(gè)模塊中,必須先定義好棋盤的盤面坐標(biāo)數(shù)組pmzb[15][15],玩家棋子數(shù)組wjqz[15][15][4]和電腦棋子數(shù)組dnqz[15][15][4],并將其初始化為0,定義棋子可能落子的8個(gè)方向,也就是4個(gè)對(duì)稱方向的數(shù)組,并初始化棋盤,讓電腦先在中間下一個(gè)棋子,然后把下棋權(quán)交給玩家。
(2)玩家下棋模塊:該模塊主要是接收玩家下的棋子的各種信息然后為玩家繪制棋子并作出相應(yīng)的判斷和記錄,故在這里應(yīng)該設(shè)置一個(gè)棋盤按鈕來(lái)實(shí)現(xiàn)。
(3)電腦下棋模塊:該模塊采用冒泡法,冒泡法是一種排序的算法。在該模塊中,為了使電腦能對(duì)棋盤上的棋子進(jìn)行比較,需要定義一個(gè)列表函數(shù)用來(lái)記錄棋盤上所有棋子的信息,如坐標(biāo)、棋盤上還有沒(méi)有空位置、各個(gè)方向的棋子情況等等,并作出相應(yīng)判斷,記錄最佳位置,把最佳位置記錄賦給主函數(shù)并繪制出電腦的棋子顯示在棋盤上,最后把下棋權(quán)交給玩家,直到對(duì)弈結(jié)束。
根據(jù)五子棋游戲的制作需要,首先在Flash 中盡量把必須的一些影片剪輯、按鈕、圖片等3 種類型的元件準(zhǔn)備好,為布置游戲場(chǎng)景做好充分的準(zhǔn)備。經(jīng)分析,圖形元件有“棋盤”;按鈕元件有“按鈕1”、“進(jìn)入游戲”、“重新開(kāi)始”;影片剪輯元件有“規(guī)則界面”、“白棋”、“黑棋”、“棋盤按鈕”、“下棋”、“電腦思考”和“游戲結(jié)束”等。
在主場(chǎng)景中,從【庫(kù)】面板中將“棋盤”圖形元件布置在圖層1 對(duì)應(yīng)幀上;將“白棋”、“黑棋”、“棋盤按鈕”影片剪輯元件布置在圖層2 對(duì)應(yīng)幀上;將“進(jìn)入游戲”按鈕元件布置在圖層3 對(duì)應(yīng)幀上;將“規(guī)則界面”、“電腦思考”、“游戲結(jié)束”和“下棋”影片剪輯元件布置在圖層4 對(duì)應(yīng)幀上。并對(duì)在每個(gè)圖層上添加的實(shí)例設(shè)置相應(yīng)實(shí)例名。
新建圖層,命名為“AS”,分別選擇“AS”圖層的第1 幀、第2 幀、第6 幀、第7 幀和第10 幀,按F7 鍵,插入空白關(guān)鍵幀。在相應(yīng)幀上打開(kāi)動(dòng)作面板,添加相應(yīng)代碼。所涉及到的ActionScript 腳本代碼主要有fscommand、if、gotoAndPlay、stop 等等。
在進(jìn)行游戲發(fā)布之前進(jìn)行游戲測(cè)試,按Ctrl+Enter 調(diào)用Flash 播放器對(duì)整個(gè)游戲進(jìn)行調(diào)試。測(cè)試成功后打開(kāi)屬性面板,找到“發(fā)布設(shè)置”,在“發(fā)布設(shè)置”對(duì)話框中勾選Flash(.swf)、HTML(.html)、Windows 放映文件(.exe)3個(gè)選項(xiàng),點(diǎn)擊“發(fā)布”則可分別生成一個(gè)影片文件、一個(gè)網(wǎng)頁(yè)文件和一個(gè)應(yīng)用程序文件。
實(shí)踐證明,由于Flash 具備著那些面向一般用戶的軟件所具有的便利性,使游戲開(kāi)發(fā)過(guò)程變得比較簡(jiǎn)易,即使是面對(duì)新手也具有較強(qiáng)的可操作性。此外在小游戲范疇,使用Flash 所制作出的游戲即使和專業(yè)的程序設(shè)計(jì)軟件相比,也毫不遜色。
[1]郝春雨,唐有明,朱俊成,等.Flash CS3 典型應(yīng)用100 例[M].北京:電子工業(yè)出版社,2008:162-201.
[2]付巖.基于Flash 的游戲設(shè)計(jì)與開(kāi)發(fā)[J].計(jì)算機(jī)光 盤軟件 與應(yīng)用,2013,3:173-174.
[3]肖剛.回合制Flash 游戲開(kāi)發(fā)的通用框架[J].閩江學(xué)院學(xué)報(bào):自然科學(xué)版,2006,27(2):53-56。