游戲畢業(yè)設計論文.doc
《游戲畢業(yè)設計論文.doc》由會員分享,可在線閱讀,更多相關《游戲畢業(yè)設計論文.doc(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。
人生最大的幸福,是發(fā)現(xiàn)自己愛的人正好也愛著自己。 游戲畢業(yè)設計論文 1.游戲設計背景 隨著科技與經(jīng)濟的快速發(fā)達 知識經(jīng)濟的快速增長 娛樂逐漸變成人與智能的交流 智能化的娛樂游戲在網(wǎng)絡里愈來愈好 眾多的游戲不勝枚舉 比如益智類的小游戲、騰訊游戲、網(wǎng)頁游戲、格斗游戲、模擬游戲等 尤其是最近網(wǎng)絡上特別流行的Flash制作的動畫越來越受關注 現(xiàn)在就探究下用Flash軟件制作貪吃蛇的游戲的設計原理 1.1游戲設計原理 游戲貪吃蛇就是在Flash軟件用影片剪輯設計出蛇 食物 同時隨機地給出食物 游戲者通過鍵盤操作控制貪吃蛇的移動 去吃食物 吃到食物后消失 然后再隨機給出食物同時蛇的身體增長 設計蛇的原理就是利用人眼的視覺效應先將蛇頭向前移動一格 然后所有蛇身依次向前移動一格 最后再擦除蛇尾 這樣看來好像蛇在向前移動 食物的給出 首先需要產(chǎn)生一個隨機數(shù) 然后通過這個隨機數(shù)計算得到食物的縱橫坐標 在軟件運行效果里顯示出來 控制蛇的移動方向 需要掃描鍵盤 然后根據(jù)鍵值改變蛇的移動方向 1.2游戲設計的運行環(huán)境 學習Flash開發(fā) 首先要建立首要的、基礎的正確認知 在幾乎任何應用程序開發(fā)中 都要接觸到三個相互關聯(lián)的方面:一個是開發(fā)環(huán)境 一個是運行環(huán)境 再一個是開發(fā)語言 1.2.1軟件開發(fā)環(huán)境 Flash應用程序開發(fā)也包含著三個方面 即使用Flash CS3作為開發(fā)環(huán)境 以ActionScript 2.0作為開發(fā)語言 以Flash Player 9為運行環(huán)境進行Flash應用程序開發(fā)和創(chuàng)作的完整知識體系 對于Flash應用程序開發(fā) 在進行Flash開發(fā)時 安裝一個開發(fā)工具(也被稱為開發(fā)環(huán)境、創(chuàng)作環(huán)境等 目前流行的Flash開發(fā)工具基本都是Adobe公司的產(chǎn)品 最著名的就是Flash CS3和FLEX 1.2.2運行環(huán)境 Windows Macintosh 處理器 800 MHz Intel Pentium III processor (or equivalent) and later 600 MHz PowerPC G3 and later 操作系統(tǒng) Windows 2000 Windows XP Mac OS X 10.3 10.4 內(nèi)存 256 MB RAM (1 GB recommended to run more than one Studio 8 product simultaneously) 256 MB RAM (1 GB recommended to run more than one Studio 8 product simultaneously) 顯示 1024 x 768 16-bit display (32-bit recommended) 1024 x 768 thousands of colors display (millions of colors recommended) 磁盤空間 710 MB available disk space 360 MB available disk space 1.2.3開發(fā)語言 用戶要進行Flash開發(fā) 要接觸是ActionScript(簡稱AS) ActionScript程序語言是用于Flash開發(fā)的交互語言 ActionScript有三種語言編寫風格 這就是AS1、AS2和AS3 AS1遵循ECMA-262第3版所制定的規(guī)范 AS2遵循即將發(fā)布的ECMA-262第4版規(guī)范 但它們的運行環(huán)境只有一種 即Flash Player VM(Adobe稱為AVM1 AVM是ActionScript虛擬機的簡稱) 2.游戲設計相關知識介紹 了解貪吃蛇的設計原理后 接下來就是對設計游戲的一些相關理論知識基礎及深入點的分層次介紹 2.1 Flash理論基礎知識要點 2.1.1 基礎概念 (1)幀頻是動畫播放的速度 以每秒播放的幀數(shù)為度量 幀頻太慢會使動畫看起來一頓一頓的 幀頻太快會使動畫的細節(jié)變得模糊 在 Web 上 每秒 12 幀 (fps) 的幀頻通常會得到最佳的效果 QuickTime 和 AVI 影片通常的幀頻就是 12 fps 但是標準的運動圖像速率是 24 fps ?。?)將元件看作是一種模板 使用同一個模板能夠創(chuàng)建多個實例 對元件的實例可以做各種變換操作 而這些操作不會對元件的各種屬性有所更改 也可以改變元件的屬性 例如顏色、形狀以及邊線的粗細等 當對這些屬性加以修改后 舞臺上的所有實例的相應屬性也發(fā)生了變化 (3)影片剪輯擁有自身的、獨立于主影片的時間軸播放的多幀時間軸 即可以將影片剪輯看作主影片內(nèi)的小影片 它可以包含交互式控件、聲音、甚至其他影片剪輯實例 也可以將影片剪輯實例放置在按鈕元件的時間軸內(nèi) 以創(chuàng)建動畫按鈕 ?。?)點語法:_root:表示絕對路徑 他指的是時間主軸 _parent:表示當前時間軸 可以操控當前時間軸上的對象等 變量作用域分為全局變量、本地變量和時間軸變量 2.1.2基本語法規(guī)則及簡單注意事項 ?。?)變量、函數(shù)、對象、操作符、保留關鍵字等語言元素 有它自己的語法規(guī)則 ActionScript擁有自己的句法和標點符號使用規(guī)則 這些規(guī)則規(guī)定了一些字符和關鍵字的含義 以及它們的書寫順序 例如 在英語中句號結(jié)束一個句子 而在ActionScript中則用分號結(jié)束一個語句 ?。?)動畫設計過程中的簡單注意事項 ○1確保處在動畫測試模式 ○2確保不在多層中添加相互矛盾的幀動作 ○3確保多個動作腳本元素沒有使用相同的名字 ○4確保所有的目標路徑以確保他們的正確無誤 2.2面向?qū)ο缶幊? "對象" 是指屬性和方法的集合 每個對象都具有其各自的名稱 并且都是特定類的實例 相比較而言 對象是一個形象具體的概念 如生活中所使用的筆、紙張、書籍、計算機等 都可稱之為對象 而對于每個對象來說 它們都具有一些區(qū)別于其他對象的個體屬性 如大小、形狀、顏色、使用方法等 在面向?qū)ο缶幊讨? 類定義對象的類別 描述對象的屬性(數(shù)據(jù))和行為(方法) 類是一個較為抽象的概念 可以說是對象概念的提升 利用類可表現(xiàn)一組相關對象中某些公共的屬性和行為 如果要使用類所定義的屬性和方法 必須先創(chuàng)建該類的實例 實例化對象其實就是指定某個特定的對象 2.3游戲制作中常用函數(shù)的屬性與方法 2.3.1 Mouse類 使用Mouse類的方法可隱藏和顯示SWF文件中的鼠標指針(光標) 默認情況下鼠標指針是可見的 但是用戶可以將其隱藏并實現(xiàn)用影片剪輯創(chuàng)建的自定義指針 方法名 用法 說明 Mouse.show Mouse.show() 在SWF文件中顯示鼠標指針 指針在默認情況下可見 Mouse.hide Mouse.hide() 隱藏SWF文件中的鼠標指針 Mouse.addListener Mouse.addListener(newListener) 注冊一個對象以接收onMouseDown、onMouseMove和onMouseUp通知 (參數(shù):newListener為一個對象) Mouse.removeListener Mouse.RemoveListener(listener) 刪除用addListener方法注冊的對象 (參數(shù):listener為一個) MovieClip.onMouseDown MyMovieClip.onMouseDown 當按下鼠標左鍵時調(diào)用 MovieClip.onMouseMove MyMovieClip.omMouseMove 當鼠標移動時調(diào)用 MovieClip.onMouseUp MyMovieClip.onMouseUp 當釋放鼠標左鍵時調(diào)用 2.3.2 Key類 Key類是不通過構(gòu)造函數(shù)即可使用其方法和屬性的頂級類 使用Key類的方法可生成用戶能夠通過標準鍵盤控制的界面 該類的屬性是常量 表示控制游戲時最經(jīng)常使用的鍵 方法名 用法 說明 Key.addListener Key.addListener(newListener) 注冊一個對象 以接收onKeyDown或onKeyUp的通知 Key.getAscii Key.getAscii() 返回按下或釋放的最后一個按鍵的ASCII碼值 Key.getCode Key.getCode() 返回最后一次按鍵的鍵控代碼值 Key.isDown Key.isDown(keycode) 判斷是否按下了參數(shù)keycode中指定的鍵 若按下則返回True;否則將返回False Key.isToggled Key.isToggled(keycode) 判斷CapsLock鍵或NumLock鍵是否處于激活狀態(tài) 若是則返回True Key.removeListener Key.removeListener(Ustener) 刪除通過addListener方法注冊的對象 若刪除成功 則返回True;否則返回False Key.onKeyDown someListener.onKeyDown 當按下某個按鍵時獲得通知 Key.onKeyUp SomeListener.onKeyUp 當釋放某個按鍵時獲得通知 2.3.3 Button類 按鈕是Flash影片中實現(xiàn)交互功能最常見的對象 SWF文件中的所有按鈕元件都是對象的實例 用戶可在屬性檢查器中指定按鈕實例名稱 并通過動作腳本使用Button法和屬性來操縱按鈕 名稱 用法 說明 Button.onDragOut myButton.onDragOut 當在按鈕上按下鼠標按鍵 并且不釋放按鍵時 然后將鼠標指針滑出按鈕時調(diào)用事件 Button.onDragOver myButton.onDragOver 當用戶在按鈕上按下鼠標 然后在不釋放按鍵的情況下將鼠標指針拖到按鈕之外后 再次將鼠標指針移到按鈕上方時調(diào)用事件 Button.onKeyDown myButton.onKeyDown 當按下鍵盤上的某個按鍵時調(diào)用事件 Button.onKeyUp myButton.onKeyUp 當釋放鍵盤上的某個按鍵時調(diào)用事件 Button.onPress myButton.onPress 當在按鈕上按下鼠標按鍵時調(diào)用事件 Button.onRelease myButton.onRelease 當用戶釋放鼠標左鍵時調(diào)用事件 2.3.4 MovieClip類 MovieClip中類的方法提供的功能與定位影片剪輯的動作所提供的功能相同 無需使用構(gòu)造函數(shù)方法即可調(diào)用MovieClip類的方法 用戶只需在語法中按名稱引用影片剪輯實例即可 方法名與用法 myMovieClip.attachMovie(idName newName depth[ initObject]) 從【庫】面板中取出一個元件 并將其附加到舞臺上由MovieClip指定的影片中 myMovieClip.creatEmptyMovieClip(instanceName depth) 為現(xiàn)有的影片剪輯元件實例創(chuàng)建子級的空影片剪輯元件實例 新創(chuàng)建的空影片剪輯的注冊點為左上角 myMovieClip.createTextField(instanceName depth x y width height) 創(chuàng)建現(xiàn)有影片剪輯元件實例的子級空文本字段 myMovieClip.duplicateMovieClip(newname depth[ initObject]) 在影片播放時 復制指定影片剪輯元件的實例 myMovieClip.gotoAndPlay(frame) 跳轉(zhuǎn)到指定幀并開始播放影片 myMovieClip.gotoAndStop(frame) 將播放頭跳轉(zhuǎn)到指定的幀 并停止影片的播放 myMovieClip.hitTest(x y shapeFlag) MovieClip.hitTest(target) 判斷指定的實例是否與標識的點擊區(qū)域或target重疊或交叉 myMovieClip.loadMovie("url"[ variables]) 在播放原始SWF影片時 將外部SWF或JPEG文件加載到FlashPlayer中的影片剪輯中 myMovieClip.removeMovieClip() 刪除使用duplicateMovieclip動作或MovieClip對duplicateMovieclip或attachMovie方法創(chuàng)建的影片剪輯元件實例 myMovieClip.unloadMovie() 刪除使用loadMovie或attachMovie方法加載的影片剪輯元件實例 MovieClip類的事件處理函數(shù)的八種狀態(tài) 名稱 用法 說明 MovieClip.onData myMovieClip.onData 當影片剪輯元件實例通過loadVariables或loadMovie方法調(diào)用接收數(shù)據(jù)時調(diào)用事件 MovieClip.onKeyDown myMovieClip.onKeyDown 當影片剪輯元件實例設置了輸入焦點 并且有按鍵被按下時調(diào)用事件 MovieClip.onKeyUp myMovieClip.onKeyUp 當鍵盤按鍵被釋放時調(diào)用事件 MovieClip.onMouseDown myMovieClip.onMouseDown 當鼠標左鍵按下時調(diào)用事件 ovieClip.onMouseMove myMovieClip.onMouseMove 當移動鼠標時調(diào)用事件 MovieClip.onMouseUp myMovieClip.onMouseUp 當釋放鼠標時調(diào)用事件 MovieClip.onPress myMovieClip.onPress 當用戶在指定的影片剪輯元件實例上按下鼠標左鍵時調(diào)用事件 MovieClip.onRelease myMovieClip.onRelease 當用戶在指定的影片剪輯元件實例上釋放鼠標左鍵時調(diào)用事件 2.3.5 Sound類與Math類 Math類的方法和屬性可以訪問和處理數(shù)學常數(shù)和函數(shù) Math類的所有屬性和方法都是靜態(tài)的 并且必須使用語法Math.method(parameter)或Math.constant來調(diào)用 游戲中食物的隨機出現(xiàn)就是利用了math函數(shù)里的隨機函數(shù) 游戲里的背景音樂還有對聲音圖標的控制也就是通過面向?qū)ο缶幊汤锏腟ound類函數(shù)來控制實現(xiàn)的 名稱 用法 說明 Sound.attachSound mySound.attachSound("idName") 將指定標識符名稱的聲音文件附加到Sound對象中 Sound.start mySound.start([secondOffset loop]) 指定聲音文件的播放 Sound.stop Sound.stop(["idName"]) 當指定了要停止播放的聲音時 將停止該聲音的播放;若未指定idName參數(shù) 則停止當前所有聲音的播放 Sound.setVolume mySound.setVolume(volume) 設置Sound對象的音量 Sound.loadSound mySound.loadSound("url" isStreaming) 將MP3聲音文件加載到Sound對象的實例中 2.3.6 Array類 通過Array 類用戶可以訪問和操縱數(shù)組 數(shù)組是一個對象 其屬性由表示該屬性在數(shù)組中位置的數(shù)字來標識 此數(shù)字稱為"索引" 所有數(shù)組都從零開始 這意味著數(shù)組中的第一個元素為 [0] 第二個元素為 [1] 依此類推 方法 說明 Array.concat() 連接參數(shù) 并將其作為新數(shù)組返回 Array.join() 將數(shù)組內(nèi)的所有元素聯(lián)接為一個字符串 Array.pop() 刪除數(shù)組中最后一個元素 并返回該元素的值 Array.push() 將一個或多個元素添加到數(shù)組的結(jié)尾 并返回該數(shù)組的新長度 Array.reverse() 倒轉(zhuǎn)數(shù)組的方向 Array.shift() 刪除數(shù)組中第一個元素 并返回該元素的值 屬性 說明 Array.length 指定數(shù)組中元素數(shù)量的非從零開始的整數(shù) 3. 制作貪吃蛇游戲的整體規(guī)劃 3.1貪吃蛇游戲的大致結(jié)構(gòu)圖 3.2游戲設計整體構(gòu)思 首先場景規(guī)劃 主要有兩個:一個是游戲封面 一個是游戲運行界面 其次是電影影片剪輯 主要有蛇 食物 背景設計等 按鈕及文字屬性都有自己的實例名 便于腳本控制 最后對整體的進行核心代碼編寫與控制 在軟件環(huán)境里運行并調(diào)試 發(fā)現(xiàn)問題 分析并解決 最后發(fā)布游戲 3.3透視游戲設計的核心重點算法 貪吃蛇的核心算法是如何實現(xiàn)移動和吃掉食物 沒有碰到食物的時候 貪吃蛇繼續(xù)移動 吃到食物的時候 蛇身增長 咬住蛇身或蛇尾的時候 能夠暫停和開始 讓游戲繼續(xù)下去 食物隨機出現(xiàn) 貪吃蛇繼續(xù)游動 并記錄游戲所得分數(shù) 3.4游戲設計核心重點函數(shù)控制 ?。?)新建一個數(shù)組來保存當前的蛇的身體aPieceList = new Array(); (2)定義mouseListener對象來偵聽鼠標的onMouseDown點擊事件 mouseListener = new Object();mouseListener.onMouseDown = function(){函數(shù)體}; (3)addPiece函數(shù)的作用是調(diào)用一段身體來增長蛇身 ?。?)moveFood函數(shù)的作用是當碰撞到食物的時候移動食物的位置 (5)startGame是腳本中重要的一部分 包括蛇的移動 碰撞和增加蛇身 4. 游戲詳細設計與核心技術(shù) 4.1游戲的詳細設計 實現(xiàn)游戲 主要的目的就是場景的布局及影片剪輯的在舞臺中的動畫實現(xiàn) 重點腳本代碼的實現(xiàn)后臺控制角色的運動 主要的設計內(nèi)容就是如下步驟所示: 4.1.1 游戲的設計的內(nèi)容 ?。?) 新建一個300*500的文檔; ?。?)設置文檔屬性中的幀頻為12(設置的更高游戲的速度更快); (3)新建兩個場景 分別命名為:sceneOne、sceneTwo; ?。?)分別對兩個場景設置背景效果 是風格獨具一格 注重色彩的搭配; (5)設置主題文字效果 并為每個場景創(chuàng)建影片剪輯與按鈕; (6)為幀和按鈕添加事件 腳本代碼; ?。?)測試影片 保存并發(fā)布 4.1.2游戲影片剪輯的設計 場景1(sceneOne): ?。?)封面背景 ?。?)設計封面主題文字與游戲規(guī)則 ?。?)添加"游戲進入"按鈕 并為該按鈕添加: on(release){gotoAndPlay("sceneTwo" 1);} 場景2(sceneTwo): ?。?)游戲運行背景 風格是手機類狀的墨綠背景 ?。?)新建一層"屏幕" 在舞臺上畫個無邊框的矩形 漸變填充色 具體屬性如下:W:300 H:300 X:0 Y:0 ?。?)選擇文本工具 在屬性面板中設置為動態(tài)文本 在矩形的正下方放置一個動態(tài)文本來顯示所得的分數(shù) 文本中寫上"start" 設置字體和顏色 實例名稱為"tScore" ?。?)按下ctrl+F8 命名為"piece" 設置他的屬性為影片剪輯 點擊"高級"按鈕 選擇"為ActionScript導出" 那個標示符自動地被設置為"piece" ?。?)選擇橢圓工具 在當前的舞臺上畫一個正圓并設置如下屬性: W:15 H:15 X:0 Y:0 (6)作為蛇的身體 不想用圓形 其他圖形也可 但是要保持它的高寬都是15 方法同上 制作一個標示符為food的影片剪輯 ?。?)選擇橢圓工具在舞臺上畫一個圓形 并設置為如下屬性: W:15 H:15 X:0 Y:0作為蛇所吃到的食物來增長身體 也可在不修改高寬的情況下進行任意的修改 4.2游戲的核心技術(shù) 4.2.1腳本函數(shù) ( canMove = true; //可以運動 sta候后onMouseDown事件函數(shù)被激活 k = new Object(); k. } }; 在制作游戲的時候 最先考慮的問題之一就是如何是游戲中的動畫畫面智能化 要做到這一點 最終的目標是要使Flash文本友好 容易編輯和擴展 在制作項目設計時 主要是素材搜集及理論知識的鞏固與升華 首先 一旦確定目標 就盡量思考項目的設計原理與背景 其次要詳細規(guī)劃 分工明細原則 弄懂該如何利用理論基礎知識要點去實現(xiàn)看似簡單的制作 最后 在綜合的實驗過程中 努力提高綜合素質(zhì)及分析問題解決問題的能力 從而對軟件應用方面會有更深刻的認知與開拓 盡量提升專業(yè)素質(zhì)修養(yǎng) 透過現(xiàn)象看本質(zhì) 找到一些規(guī)律 讓自己的學識由量到質(zhì)變的過程 綜合能力的提高進而為進入社會做了更好的準備工作 簡單的貪吃蛇游戲由蛇頭、蛇身、蛇尾、食物為主角 游戲控制中 食物一旦吃到 蛇身就增加一段 而后食物隨機出現(xiàn) 蛇又運動 循環(huán)往復 直至蛇頭咬住自己的身體某一部位 游戲終止 可見控制中增加了對軟件高級語言編程的應用 比如隨機函數(shù) 數(shù)組 自定義函數(shù) 影片剪輯事件等 最后綜合在一起應用 除了考慮核心函數(shù)和局部函數(shù)的主次分配 還要預先初定義一些變量 便于控制整個游戲 最后對軟件的熟練操作 實現(xiàn)最終游戲的實現(xiàn) ?? ?? ?? ?? 1 還認真開展了6次全國統(tǒng)一行動,遏制了因"三超一疲勞"而引發(fā)的交通事故;在三、四、五月份,我隊還按照州政府、州安委會、州支隊要求,開展了道路交通集中整治專項行動、治理酒后駕駛、摩托車、電動車專項治理行動,均取得了一定的成效。- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關 鍵 詞:
- 游戲 畢業(yè)設計 論文
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://m.jqnhouse.com/p-5362245.html