版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 《數據結構與算法》</b></p><p><b> 課程設計說明書</b></p><p> 題 目: flash 迷宮小游戲</p><p> 學 院: 計算機科學與工程學院 </p><p> 專
2、 業(yè): 信息安全 </p><p> 姓 名: </p><p> 學 號: </p><p> 指導教師:
3、 </p><p> 2014年 10 月 1 日</p><p><b> 成績評定標準及成績</b></p><p> 能按照格式進行寫作,無抄襲現象(10分) </p><p> 報告內容行文通暢,有條理性,無錯別字,結構嚴謹。(10分) </p><p>
4、; 能夠按照數據結構課設的格式要求、排版要求和字數要求等,有需求分析,系統(tǒng)分析,詳細設計,關鍵技術的介紹和參考文獻。(10分) </p><p> 在驗收過程中,能合理的回答問題(20分) </p><p> 軟件能正常運行,實現所提出的功能(40分) </p><p> 軟件代碼規(guī)范性較好(5分) </p><p>
5、; 具有自己的創(chuàng)新或特色(5分) </p><p> 總成績: </p><p><b> 目 錄</b></p><p><b> 引言3</b></p><p><b> 1 系統(tǒng)概述4</b></p><p>
6、<b> 2 需求分析5</b></p><p> 2.1 系統(tǒng)需求5</p><p> 2.2 開發(fā)環(huán)境5</p><p><b> 3 詳細設計9</b></p><p> 3.1 準備階段9</p><p> 3.2 設計制作階段9</
7、p><p> 3.3修正并定型9</p><p> 3.4 界面設計5</p><p> 4 所遇到的問題和分析解決24</p><p> 5 系統(tǒng)特色及關鍵技術25</p><p><b> 6 結論26</b></p><p><b>
8、 參考文獻27</b></p><p><b> 引言</b></p><p> 一個數據結構是由數據元素依據某種邏輯聯系組織起來的。對數據元素間邏輯關系的描述稱為數據的邏輯結構;數據必須在計算機內存儲,數據的存儲結構是數據結構的實現形式,是其在計算機內的表示;此外討論一個數據結構必須同時討論在該類數據上執(zhí)行的運算才有意義。數據結構作為一門獨立的課程
9、在國外是從1968年才開始的,但在此之前其有關內容已散見于編譯原理及操作系統(tǒng)之中。20世紀60年代中期,美國的一些大學開始設立有關課程,但當時的課程名稱并不叫數據結構。1968年美國唐.歐.克努特教授開創(chuàng)了數據結構的最初體系,他所著的《計算機程序設計技巧》第一卷《基本算法》是第一本較系統(tǒng)地闡述數據的邏輯結構和存儲結構及其操作的著作。從20世紀60年代末到70年代初,出現了大型程序,軟件也相對獨立,結構程序設計成為程序設計方法學的主要內容
10、,人們越來越重視數據結構。從70年代中期到80年代,各種版本的數據結構著作相繼出現。目前,數據結構的發(fā)展并未終結,一方面,面向各專門領域中特殊問題的數據結構得到研究和發(fā)展,如多維圖形數據結構等;另一方面,從抽象數據類型和面向對象的觀點來討論數據結構已成為一種新的趨勢,越來越被人們所重視。隨</p><p> Flash軟件由Macromedia公司推出,除了制作動畫以外,還能實現交互功能。Flash是一種創(chuàng)作工
11、具,設計人員和開發(fā)人員可使用它來創(chuàng)建演示文稿、應用程序和其它允許用戶交互的內容。Flash 可以包含簡單的動畫、視頻內容、復雜演示文稿和應用程序以及介于它們之間的任何內容。它不僅能夠制作出許多眩目多彩的效果,只要你肯賦予它一定的情景,它也會模擬出現實生活中的場景。通過Flash生成的動畫文件非常小,可以很好的用在網頁設計及更多的領域。Flash可以采用補間形狀或補間動畫等多種手段,產生很復雜的動畫;同時,Flash不同于gif動畫,它可
12、以附加很復雜的控制代碼,從而開發(fā)出很復雜的應用,比如一些小游戲。在近年發(fā)展迅速,許多年青人投身其中,并在整個flash行業(yè)中發(fā)揮重要作用。flash player占據了90%互聯網用戶的瀏覽器,空間還十分巨大,前途不可估量從第一個電子游戲開發(fā)至今已經有30多年,在這個短暫的時期里,隨著硬件水平的提高,游戲開發(fā)技術層出不窮,經典游戲比比皆是?,F在的游戲多指各種平臺上的電子游戲。電子游戲有單機版和網絡游戲,而Flash游戲是一種新興的游戲,
13、以游戲簡單、操作</p><p> 通過策劃、需求分析確定游戲規(guī)則玩法、游戲界面、基本功能以及整個游戲的運行流程;然后使用Flash CS6軟件制作文本、按鈕、圖形、影片剪輯等界面元素,通過排列、整合、美化等工作完成游戲界面的制作,并實現界面之間的轉換;用ActionScript 3.0語言和遞歸算法思想進行編程工作實現對鍵盤上下左右控制,來實行對主角控制、自動生成迷宮、實現主人公走到出口碰撞等功能,以及對整個
14、游戲運行的控制。最后,把界面和ActionScript代碼進行整合,并經過游戲運行、測試、修正等工作,完成整個游戲的開發(fā),因為要做關于數據結構的flash 小游戲,所以決定選擇在C++中運用到棧和隊列的迷宮算法,所以決定制作迷宮小游戲,顧名思義,即是有很多讓人眼花繚亂路徑,并且要成功找出出口的一種小游戲。它能充分鍛煉游戲人眼力,從而通過操作主人公成功走出這個復雜的路徑中。,Flash游戲設計的意義就在于:</p><
15、p> 集合不同的藝術門類,把藝術與技術相結合。從而讓人可以在游戲中的到美的享受。</p><p> 給廣大的互聯網用戶提供了一個娛樂,休閑,放松身心的地方。</p><p> 讓設計師之與玩家之間產生交流,從而完善游戲。</p><p> 操作便捷,文件攜帶方便,無需安裝,符合了現在很多快餐式的生活要求便于大眾隨時的下載,游戲。</p>
16、<p> 有豐富的圖像,畫面不受軟件的限制。富有創(chuàng)意,風格多變。是其他電子游戲沒有的。</p><p><b> 1 系統(tǒng)概述 </b></p><p> Flash的前身是Future Wave公司的Future Splash,是世界上第一個商用的二維矢量動畫軟件,用于設計和編輯Flash文檔。1996年11月,美國Macromedia公司收購了F
17、uture Wave,并將其改名為Flash。在出到Flash 8以后,Macromedia又被Adobe公司收購。最新版本為:Adobe Flash CS6。這次所采用的開發(fā)環(huán)境就是flash cs6,它還提供其他的一些增強功能。比如,支持位圖、聲音、漸變色、Alpha、透明等。擁有了這些功能,完全可以建立一個全部由Flash制作的站點,不僅如此,flash現在被大量運用于游戲的開發(fā),所以現在被廣泛應用于游戲,因為游戲開發(fā)的難度更大,
18、不只是圖形元素和幀的設計,更包含了控制和算法的代碼,對學習來說,更有鍛煉能力的價值,我所選擇的就是由flash cs6 制作迷宮小游戲,通過對幀的各種理解和制作,還要結合actionscript語言結合開發(fā),ActionScript 3.0 是一種強大的面向對象編程語言,它標志著 Flash Player Runtime 演化過程中的一個重要階段。設計 Acti</p><p><b> 2 需求分
19、析</b></p><p><b> 2.1 系統(tǒng)需求</b></p><p><b> 2.1.1問題需求</b></p><p> 棧:特點就是一個先進后出的結構。隊列:特點就是一個先進先出的結構。//一般只要你滿足這個特點就可以稱之為?;蜿犃?。棧的應用:非常廣泛,在CPU內部就有提供棧這個機制
20、。主要用途:函數調用和返回,數字轉字符,表達式求值,走迷宮等等。在CPU內部棧主要是用來進行子程序調用和返回,中斷時數據保存和返回。在編程語言中:主要用來進行函數的調用和返回。可以說在計算機中,只要數據的保存滿足先進后出的原理,都優(yōu)先考慮使用棧,所以棧是計算機中不可缺的機制。隊列的應用:隊列主要用在和時間有關的地方,特別是操作系統(tǒng)中,隊列是實現多任務的重要機制。windows中的消息機制就是通過隊列來實現的。進程調度也是使用隊列來實現
21、,所以隊列也是一個重要的機制。只要滿足數據的先進先出原理就可以使用隊列。</p><p> 2.1.2 情感需求</p><p><b> 1.消遣休閑 </b></p><p> 這種價值主要針對上班族(實際上,學生們也同樣享受著這種待遇),工作之余,找一個世外空間,在這個空間里,可以隨心所欲地游蕩在虛擬世界,也沒有人管束。游戲過程中,
22、享受刺激感,比起迷茫地閑逛、觀看枯燥無味的電視節(jié)目,更讓人興奮。</p><p><b> 2.成就</b></p><p> 當玩家慢慢突破難關,享受到勝利的喜悅,在虛擬的世界中滿足了自己的虛榮感。</p><p><b> 3.幻想</b></p><p> 虛擬的游戲世界中,游戲設計者
23、可以充分的發(fā)揮想象,用戶也可以體驗到現實中沒有的內容。例如想像自己是主角,或把敵人變成可愛的綿羊,贏得了比賽,這些都是體驗的形式。</p><p><b> 4.收獲快樂</b></p><p> 幽默詼諧的人物形象或人物設定最容易讓大眾接受,讓用戶能笑起來,玩的時候很開心,生活總是樂觀的,少一些抑郁,多一些歡樂,社會更和諧。</p><p&g
24、t;<b> 5.滿足審美需求</b></p><p> 藝術是人類以感情和想象作為特性的把握世界的一種特殊方式,即通過審美創(chuàng)造活動再現現實和表現情感理想,在想象中實現審美主體和審美客體的互相對象化。具體說,他們是人們現實生活和精神世界的形象反映,也是藝術家知覺、情感、理想、意念綜合心理活動的有機產物。作為第九藝術,同樣具備滿足人類審美需求的功能</p><p>
25、 2.1.2 材料需求</p><p> 迷宮游戲將提供各式各樣不同的路徑走法,讓玩家能在更好更豐富多彩的環(huán)境下去找出出口。所以,迷宮小游戲的設計不應該只是單一的面或的圖。為了吸引更多玩家,圖片應該豐富化。</p><p> 設計中要解決的問題:</p><p> (1) 素材要充足(圖片素材、聲音素材等)</p><p> (2)
26、 游戲內容要充足(要有開始界面、還有游戲說明、游戲完成的界面等)</p><p> (3) 游戲整個框架要美觀簡潔,更能吸引玩家,讓玩家有想玩游戲的想法或欲望。</p><p> (4) 充分利用選擇工具、鉛筆工具、橡皮擦工具勾勒自己所需的圖。</p><p><b> 2.2 開發(fā)環(huán)境 </b></p><p>
27、 軟件:Adobe Flash CS6 系統(tǒng):windows 7</p><p><b> 3 詳細設計</b></p><p><b> 3.1準備階段:</b></p><p> 對迷宮游戲先有一定的理解,確定游戲的內容。上網查找自己所需要的圖片跟聲音素材。構思好自己要設計的填色游戲的主框架。</p
28、><p> 3.2設計制作階段:</p><p> 全部都準備充足后。利用flash cs6軟件開始制作迷宮游戲。先設計迷宮游戲的第一個頁面(用豐富的色彩當背景,添加些文本吸引玩家點擊進入游戲)。接著是主框架和其他部分。在設計游戲中相應的導入所查找好的資料素材,充分利用選擇工具、鉛筆工具和橡皮擦工具繪制自己所要的場景圖片。并對相應的動作編寫代碼。</p><p>&
29、lt;b> 3.3修正并定型 </b></p><p> 迷宮游戲設計完成后,不斷的修正。讓游戲的進入界面更完善、迷宮內容更加豐富化。最終迷宮游戲的設計定型。</p><p><b> 3.4設計界面</b></p><p> 3.4.1游戲的主要界面概述</p><p> 游戲的主要界面分別
30、為:進入界面、玩迷宮游戲的界面、結束界面。</p><p> 3.4.2游戲的進入界面概述</p><p> 進入第一界面的設計:用層次豐富的色彩當背景,用一個敬禮的小兵作為按鈕點擊進入,這樣對玩家更具吸引力。用文本工具填寫文字,文字起引導作用,引導玩家點擊進入游戲的第二界面。</p><p> 3.4.3游戲界面概述</p><p>
31、 進入第二界面的設計:主要通絢麗的背景圖片和動聽的音樂讓整個界面更豐富生動,同樣也起到更吸引玩家的作用。游戲通過操縱鍵盤上面的上下左右來完成對小兵的移動,到達已電廠為圖片的出口,進入到有趣生動的第三界面。</p><p> 3.4.4結束界面概述</p><p> 進入結束界面的設計:主要通絢麗的背景圖片和動聽的音樂讓整個界面更豐富生動,同樣也起到更吸引玩家的作用。有趣生動的文字和敬
32、禮的小兵讓游戲沒有那么僵硬,按下小兵完成重玩按鈕。</p><p> 3.5游戲過程框架制圖</p><p> 3.6游戲界面的過程和設計方法</p><p> 3.6.1進入界面的制作和過程</p><p> 1. 首先從網上準備下載的資源,新建一個按鈕,名稱為開始,點擊確認,點擊文件菜單中導入,選擇導入到舞臺,選擇小兵敬禮圖片,再
33、新建影片剪輯 ,命名為word,在編輯畫面上選擇文本工具,寫上小迷宮游戲,點擊小兵開始,再新建影片剪輯,命名為load,寫上loading.新建一個場景,命名為loading,在屬性面板上設置幀的熟慮為15pfs,從庫中拖出圖片作為背景,圖形如下</p><p><b> 時間軸的情況如下:</b></p><p> 2.把圖層1改為背景,在第一幀中插入關鍵幀,把
34、tank 按鈕拖到場景中央,再新建一個圖層,雙擊圖層2,名稱改為red&load,在第一幀上插入關鍵幀,從庫中把word和load拖到loading中,調整好位置,再新建一個圖層3,雙擊圖層3,把名稱改為as,在第一幀上選擇屬性,在幀的名稱上寫上begin,在圖層as上編寫腳本語言,在第一幀上選擇動作,寫入以下代碼 </p><p><b> stop();</b></p&g
35、t;<p> fscommand("fullscreen","false"); //點擊某一個按鈕而退出全屏</p><p> loading.onEnterFrame=function(){</p><p> solider._visible=false;</p><p> byteloaded=Ma
36、th.floor(getBytesLoaded()/1024);//取整數部分,去掉小數</p><p> bytetotals=Math.floor(getBytesTotal()/1024);</p><p> precent=Math.floor(byteloaded/bytetotals*100)//getBytesLoaded()是指當前取得的字節(jié)數,getBytesTota
37、l()是指預載入影片或內容的字節(jié)數。這兩個屬性用于顯示加載影片或內容的進度;</p><p> if(precent>=100){</p><p> solider._visible=true;</p><p> loadbar._visible=false;</p><p> red.gotoAndStop(5);</p
38、><p><b> }</b></p><p> loading.gotoAndStop(int(precent/10));</p><p><b> }</b></p><p> 3.點擊開始按鈕,選擇動作,在腳本語言上面輸入以下代碼:</p><p> on(rel
39、ease){</p><p> gotoAndPlay("場景1");//跳入到場景1</p><p><b> }</b></p><p> 3.6.2游戲界面的制作和過程</p><p> 事先準備好所需要的影片剪輯和按鈕,這里不一一概述了,把圖層1名稱改為重玩,在第一幀上插入關鍵幀,從庫
40、中拖入兩張圖片,在弟15幀上插入空白關鍵幀,起到延長時間的效果,如下圖所示,</p><p> 2.再新建一個圖層10,在第1幀中插入關鍵幀,在第4幀中再插入關鍵幀,慢慢拖動兩張圖片,再在弟14幀上再插入關鍵幀,把圖片移動到兩邊,展示游戲界面的圖片。</p><p> 3.新建一個圖層11,在第一幀上插入關鍵幀,移動圖片,在第3幀中插入幀,在第4幀中插入關鍵幀,從庫中拖入聲音元件,在第
41、14幀中插入關鍵幀,拖入聲音到14幀,在15幀上插入空白關鍵幀</p><p> 4.再新建一個圖層,命名為飛機,在14幀中插入關鍵幀,從庫中把電廠圖片拖到場景1上,在屬性面板上把電廠實例名稱改為plane.</p><p> 5.再新建一個圖層,把圖層名稱改為坦克,在第14幀中插入一個關鍵幀,從庫中把事先準備好的影片剪輯小兵,在屬性面板上把名稱改為tank,拖動到場景1中。</
42、p><p> 6.新建了四個線段的影片剪輯,分別命名為w0,w1,w2,w3,用來自動生成迷宮,新建一個圖層,命名為腳本,在第一幀中插入空白關鍵幀,在屬性面板中把幀的屬性改為begin,在第3幀中選擇動作,在第3幀中輸入以下代碼:</p><p><b> s=18;</b></p><p><b> k=30;</b>
43、</p><p> MazeH = s;</p><p> MazeW = s; //迷宮的高度和寬度</p><p> TotalCells = MazeH*MazeW; //代表了迷宮所能容納的墻壁總數</p><p> Maze = new Array();</p><p> for (i=0; i&l
44、t;TotalCells; i++) {</p><p> Room = new Array();</p><p> Cell = new Array();</p><p> Cell.push(true, true, true, true);</p><p> Cell.push(int(i/MazeW));</p>
45、<p> Cell.push(i%MazeW);</p><p> //使用數組對象的Push方法將參數值加到數組中,其中i/MazeW為I和Mazew相除且取//整數部分,I%MazeW取兩者相除的余數部分 </p><p> Room.push(Cell);</p><p> Maze.push(Room);</p><p&
46、gt;<b> }</b></p><p> while (true) {</p><p> roomNum = random(Maze.length);</p><p> cellNum = random(Maze[roomNum].length);</p><p> wallNum = random(4);
47、</p><p> //分別取三個隨機數,roomNum取數組Maze長度內的隨機數,用來表示迷宮內的房間號,cellNum取數組Room長度內的隨機數,因為roomNum是數組Maze的最大長度,所以數組Maze的第roomNum號元素就是其最后一個元素,也即數組Room。最后一個變量取4以內的隨機數,代表房間內不同的四堵墻</p><p> if (Maze[roomNum][ce
48、llNum][wallNum] == false) {</p><p><b> continue;</b></p><p> //如果迷宮中的第roomNum個房間里的第cellNum堵墻的值為faulse,則繼續(xù)進行判斷,直到值為true</p><p> }//判斷Maze數組中編號為[roomNum][cellNum][wallN
49、um]的元素值是否為假,如果為</p><p> //假,進行下一步循環(huán)</p><p> x = Maze[roomNum][cellNum][4];</p><p> y = Maze[roomNum][cellNum][5];</p><p> //分別設置x,y為第roomNum號房間的第cellNum堵墻的第4個和第5個元素
50、</p><p> if (wallNum == 0 and x == mazeW-1) {</p><p><b> continue;</b></p><p> } else if (wallNum == 1 and y == mazeH-1) {</p><p><b> continue;<
51、;/b></p><p> } else if (wallNum == 2 and x == 0) {</p><p><b> continue;</b></p><p> } else if (wallNum == 3 and y == 0) {</p><p><b> continue;&
52、lt;/b></p><p><b> }</b></p><p> oppsCell = new Array();</p><p> if (wallNum == 0) {</p><p> oppsCell = fun_findcell(x+1, y);</p><p> }
53、else if (wallNum == 1) {</p><p> oppsCell = fun_findcell(x, y+1);</p><p> } else if (wallNum == 2) {</p><p> oppsCell = fun_findcell(x-1, y);</p><p> } else if (wal
54、lNum == 3) {</p><p> oppsCell = fun_findcell(x, y-1);</p><p> }// 根據墻壁編號的不同,分別調用參數不同的函數,fun_findcell為自定義函數</p><p> if(oppsCell!=null){</p><p> if (oppsCell[0] == ro
55、omNum) {</p><p><b> continue;</b></p><p><b> }</b></p><p> if (wallNum == 0) {</p><p> oppsWall = 2;</p><p> } else if (wallNu
56、m == 1) {</p><p> oppsWall = 3;</p><p> } else if (wallNum == 2) {</p><p> oppsWall = 0;</p><p> } else if (wallNum == 3) {</p><p> oppsWall = 1;</
57、p><p> }// 打開單元格中的一堵墻</p><p> Maze[roomNum][cellNum][wallNum] = false;</p><p> Maze[oppsCell[0]][oppsCell[1]][oppsWall] = false;</p><p> Maze[roomNum] = Maze[roomNum].
58、concat(Maze[oppsCell[0]]);</p><p> Maze.splice(oppsCell[0], 1);</p><p> }//用四個墻壁將空間封閉</p><p> if (Maze.length == 1) {</p><p><b> break;</b></p>&
59、lt;p><b> }</b></p><p><b> }</b></p><p> function fun_findcell (a, b) {</p><p> reCell = new Array();</p><p> for (i=0; i<Maze.length;
60、 i++) {</p><p> for (j=0; j<Maze[i].length; j++) {</p><p> if (Maze[i][j][4] == a && Maze[i][j][5] == b) {</p><p> reCell.push(i, j);</p><p> return reCe
61、ll;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> }//自定義函數fun_findcell,用來尋找沒有封閉的單元格</p><p> 在第14幀上添加如
62、下腳本:</p><p> Maze=Maze[0];</p><p><b> cellW=k;</b></p><p> wn=0;//定義三個變量</p><p> for (i=0; i<Maze.length; i++) {</p><p> cellX = Maze[i
63、][4];</p><p> cellY = Maze[i][5];</p><p> for (j=0; j<4; j++) {</p><p> if (Maze[i][j] == true) {</p><p> _root.attachMovie("w"+j, "ww"+wn, w
64、n);</p><p> eval("ww"+wn)._x = 105+cellW*cellX;</p><p> eval("ww"+wn)._y =20+cellW*cellY;</p><p><b> wn++;</b></p><p><b> }<
65、;/b></p><p><b> }</b></p><p> }//控制游戲主角在迷宮中運動,并對路線進行判斷</p><p> tank._x=105;</p><p> tank._y=20;</p><p> //設置游戲主角的坐標</p><p>
66、; tank.gotoAndStop(1);</p><p> //主角處于游戲進行狀態(tài)</p><p> plane._x=105+(MazeW-1)*cellW;</p><p> plane._y=20+(MazeH-1)*cellW;</p><p> //設置迷宮出口坐標</p><p> tan
67、kX = 0;</p><p> tankY = 0;</p><p> 在第15幀上添加腳本 stop();</p><p> 7.給主角小兵tank 添加如下腳本:</p><p> onClipEvent (keyDown) {</p><p><b> k3=30;</b><
68、;/p><p> kd = Key.getCode();</p><p> if (!this.hitTest(_root.plane)) {</p><p> cell = new Array();</p><p> cell = fun_cellwall(_root.tankX, _root.tankY);</p>&l
69、t;p> if (kd == Key.RIGHT) {</p><p> if (cell[0] == false) {</p><p> _root.tankX++;</p><p> this._x += k3;</p><p><b> }</b></p><p> got
70、oAndStop(1);</p><p> } else if (kd == Key.DOWN) {</p><p> if (cell[1] == false) {</p><p> _root.tankY++;</p><p> this._Y += k3;</p><p><b> }<
71、/b></p><p> gotoAndStop(2);</p><p> } else if (kd == Key.LEFT) {</p><p> if (cell[2] == false) {</p><p> _root.tankX--;</p><p> this._x -= k3;&l
72、t;/p><p><b> }</b></p><p> gotoAndStop(3);</p><p> } else if (kd == Key.UP) {</p><p> if (cell[3] == false) {</p><p> _root.tankY--;</p>
73、;<p> this._Y -= k3;</p><p><b> }</b></p><p> gotoAndStop(4);</p><p><b> }</b></p><p> if (this.hitTest(_root.plane)) {</p>&
74、lt;p> _root.gotoAndPlay("end");</p><p> _root.plane._visible = 0;</p><p><b> }</b></p><p><b> }</b></p><p> function fun_cellw
75、all(a, b) {</p><p> cw = new Array();</p><p> for (i=0; i<_root.Maze.length; i++) {</p><p> if (_root.Maze[i][4] == a && _root.Maze[i][5] == b) {</p><p>
76、 cw = _root.Maze[i];</p><p> return cw;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</
77、b></p><p> 8.完成的界面和時間軸如下圖:</p><p> 3.6.3結束界面的制作和過程</p><p> 1.新建一個場景,為場景4,在屬性面板上面設置顏色為黑色,把圖層1改為soubdstop,在98幀上插入一個空白關鍵幀。</p><p> 再新建一個圖層1,點擊第一幀,在屬性面板上把幀名稱改為end,插入
78、關鍵幀,添加文本框,在后面的隔幾幀中往文本框中添加文字。</p><p> 新建圖層sound,把聲音控件拖到場景4中,在92幀中插入幀</p><p> 4.新建圖層as ,在幀1,46和87中添加腳本for(i=0;i<wn;i++){</p><p> removeMovieClip("ww"+i);</p>&l
79、t;p> } 在幀92中添加腳本stop();</p><p> 5.結束界面和時間軸完成如下圖所示</p><p><b> 3.7測試階段</b></p><p><b> 測試方法:</b></p><p> 不停調試,查看輸出錯誤,根據提示改正錯誤。</p>
80、<p> 在電腦上用播放器運行。打開游戲,運行程序進行測試。</p><p><b> 測試結果:</b></p><p> 實現了界面優(yōu)化,實現了開始游戲,游戲聲音,自動生成路徑和點擊重玩等功能;</p><p> 實現了迷宮游戲的基本功能。</p><p><b> 3.8游戲運行界面&
81、lt;/b></p><p> 4所遇到的問題和分析解決</p><p> 4.1基礎概念的問題 </p><p> 1.因為沒有接觸過flash,不了解基本的概念,還有相關幀的使用,通過查閱資料知道了基礎幀,關鍵幀,關鍵空白幀的區(qū)別和作用。</p><p> 2.圖形處理的問題,一些圖片本來應該自己畫出來,畫功太差,后面直接
82、從網上下載相應的資源和圖片,并且導入圖片和聲音。</p><p> 3.還遇到一些相對基礎的問題,例如如何設置圖片的大小,相應改對應的名稱,在實現小兵和出口的碰撞時,應該設置出口相應的實例名稱,結果設置實例 名稱時和代碼上的名稱不一致,結果耗費了大量的時間在調試代碼上面,這也是很嚴重的粗心問題,還有對flsh cs6基本概念的不了解和知識掌控的不熟悉度。</p><p> 在設置元件的
83、時候,不了解影片剪輯,按鈕,圖形三種元件的概念知識,還有對屬性的掌握,不知實例名稱的作用,還有在設置腳本的時候實例名稱的作用。</p><p> 5.在進行FLSH游戲設計時最主要的問題還有腳本語言的問題,不知道應該怎么自動生成迷宮,腳本語言應該在哪里編寫,腳本的語言格式是怎么樣的,還有主人公走到出口的時候碰撞的腳本應該怎么寫,編譯出現錯誤的時候應該如何修改,后面網上百度大神代碼作為參考,再到圖書館查閱資料,經
84、過各種調試解決問題。</p><p> 6. 如何控制主角的移動經過查閱資料已經知道, 但是如何做墻壁限制球的移動范圍,通過查詢資料和網上看視頻,知道控制坐標比如你左邊的邊界是 X == 0那你就檢測你的球 當檢測到球的坐標小于0時 就說明碰到墻壁了</p><p> 4.2設計界面的問題 </p><p> 1. 如何能夠起到吸引玩家的作用,添加圖片如何能
85、夠讓整體美觀,添加聲音讓游戲更加生動。</p><p> 2.拖動圖片到場景中需要合適的大小作為背景,如何設置快捷鍵,如何把圖片轉化為位圖,如何在庫中設置文件夾,讓庫中整潔一些。</p><p> 5.系統(tǒng)特色和關鍵技術 </p><p> 1、Flash游戲界面炫酷</p><p> flash游戲雖然是在線游戲或者小游戲下載和安
86、裝都很簡單但是其通過Adobe公司專業(yè)的動漫制作軟件制作出來的效果絕對可以和客戶端游戲媲美。憑借Adobe公司的技術支持加上Flash Player插件的支持其視覺效果完全可以用炫酷來形容。這也是為什么可以說Flash小游戲不小,并且能夠獲得大部分年輕人喜愛的原因。</p><p> 2、Flash游戲小易于傳播</p><p> 一般的Flash游戲都很小,大小只有十幾兆最
87、多幾十兆左右。這樣體積大小的游戲很容易在互聯網上傳播。因為Flash游戲下載不需要太多時間,并且很多Flash游戲還可以在線玩耍。玩起來很方便,加上提供Flash游戲的平臺越來越多其傳播速度大大加快。Flash游戲的這個優(yōu)點為其發(fā)展提供了重要支持。</p><p> 3、Flash游戲免費</p><p> 與其他大型客戶端游戲相比Flash游戲基本是免費的,而客戶端游戲少則幾百動輒上
88、千的游戲投入也讓不少玩家心生厭惡。免費的Flash游戲讓玩家體驗到了免費的娛樂,而不是那種不投入錢就不能很好的玩游戲的感受。免費讓Flash游戲能夠獲得很好的玩家基礎,這也是為什么Flash游戲能發(fā)展如此之好的另一重要原因。</p><p> 4、Flash游戲不易上癮</p><p> 因為Flash游戲結構簡單對于玩家來說很容易就能玩耍游戲,且不像大型游戲那樣內容會一直更新下去讓人
89、容易上癮。Flash游戲操作和內容都很簡單其突出特點是興趣點而不是靠復雜的內容吸引玩家。</p><p> 5、Flash游戲多以益智類為Flash 游戲還有一大優(yōu)點——啟發(fā)益智,這是Flash游戲能夠在小孩間傳播的重要意義。這一優(yōu)點特別適合小孩玩耍加上不容易上癮的優(yōu)點也能讓家長接受孩子們玩耍游戲。這也是Flash游戲能在小孩子間興起的原因。</p><p> 6.flash
90、 的編譯工具輸出是中文,能夠讓編譯人員更好理解錯誤,更能快速解決錯誤。</p><p> 7.這次要完成的是數據結構課設,一般選擇的是C或C++,或是java,可是我本次選擇的是flash來開發(fā),flash 的腳本語言比c簡單,但是功能更加完善,界面更加華麗。</p><p><b> 6.結論 </b></p><p> 數據結構是計算
91、機科學與技術專業(yè)、計算機信息管理與應用專業(yè),電子商務等專業(yè)的基礎課,是十分重要的核心課程。所有的計算機系統(tǒng)軟件和應用軟件都要用到各種類型的數據結構。因此,要想更好地運用計算機來解決實際問題,僅掌握幾種計算機程序設計語言是難以應付當前眾多復雜的課題。要想有效地使用計算機、充分發(fā)揮計算機的性能,還必須學習和掌握好數據結構的有關知識。打好“數據結構”這門課程的扎實基礎,對于學習計算機專業(yè)的其他課程,如操作系統(tǒng)、數據庫管理系統(tǒng)、軟件工程、編譯原
92、理、人工智能、圖視學等都是十分有益的。</p><p> 《數據結構》在計算機科學中是一門綜合性的專業(yè)基礎課.數據結構的研究不僅涉及到計算機的硬件(特別是編碼理論、存儲裝置和存取方法等)的研究范圍,而且和計算機軟件的研究有著更密切的關系,無論是編譯程序還是操作系統(tǒng),都涉及到數據元素在存儲器中的分配問題.在研究信息檢索時也必須考慮如何組織數據,以便查找和存取數據元素更為方面.因此,可以認為數據結構是介于數學、計算
93、機硬件和計算機軟件三者之間的一門核心課程.在計算機科學中,數據結構不僅是一般程序設計(特別是非數值計算的程序設計)的基礎,而且是設計和實現編譯程序、操作系統(tǒng)、數據庫系統(tǒng)及其它系統(tǒng)程序和大型應用程序的重要基礎。迷宮游戲是一種經久不衰的游戲,其玩法也很簡單,就是從起點開始找到出口。傳統(tǒng)的迷宮游戲只能通過復雜的地圖,多種出路組合來吸引玩家的興趣。而本例中的這個迷宮游戲則不同,因為它的地圖是隨機生成的,這樣就大大地增強了游戲的可玩性。這也是該游
94、戲設計最有吸引力的地方。在整個迷宮游戲的制作過程中讓我更加懂得了如何去運用flash面板中的那些工具以及某些代碼的書寫,而且讓我在設計方面得到了很大的提高,在這過程當中也碰到了些困難。當然,最后都得到及時</p><p> 這次課程設計在鑒于相關資料后是由我獨立完成的。通過這次課程設計,使我對flash這門生動有趣的學科有了更深刻的認識,也更加了解了數據結構中的迷宮算法,并且用flash完成了對數據結構的迷宮游
95、戲,并對flash實際制作有了較大的提高。</p><p> 在我的指導老師的熱心幫助下,不斷的修改不斷的向老師指定的目標靠近。一點點地進步。在制作中遇到不少困難,自己查找大量資料,翻閱相關書籍幫助自己解決困難,缺點是沒有運用到恨明顯的數據結構知識,下次會努力改進。 </p><p> 在這次的實踐中,我進步了很多也明白了很多。我懂得了如何自己發(fā)現問題再自己去尋找資料解決問題。除了老師
96、對我的指導外憑借自己所學的知識去解決問題后的那種感覺也是令人難忘的。</p><p><b> 7.參考文獻 </b></p><p> [1] 張乃孝,陳光,孫猛.算法設計與數據結構[M].北京: 高等教育出版社,2012:85~96.</p><p> [2] 鄭伯鴻.actionscript 語法參考辭典[M].北京:中國鐵道出
97、版社,2003</p><p> [3] 劉小東.flash mx 中文版特效與游戲制作[M].北京:中國水利水電出版社,2003</p><p> [4] 石民勇.flash游戲設計與制作教程[M].北京:中國傳媒大學出版</p><p><b> 2007-1-1</b></p><p> [5] 李永
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論