課程考查報(bào)告_第1頁
課程考查報(bào)告_第2頁
課程考查報(bào)告_第3頁
課程考查報(bào)告_第4頁
課程考查報(bào)告_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

南京曉莊學(xué)院數(shù)學(xué)與信息技術(shù)學(xué)院《網(wǎng)絡(luò)游戲編程》課程考查報(bào)告《圖片獵人》的設(shè)計(jì)與實(shí)現(xiàn)所在院(系):數(shù)學(xué)與信息技術(shù)學(xué)院學(xué)生姓名:倉迎春學(xué) 號(hào): 10130527班 級(jí):10軟件工程指導(dǎo)老師:李 青完成時(shí)間:

目錄1前言 前言1.1課題背景與意義Flash是一種交互式動(dòng)畫設(shè)計(jì)工具,用它可以將音樂,生效,動(dòng)畫以及富有新意的界面融合在一起,以制作出高品質(zhì)的動(dòng)態(tài)效果的媒體開發(fā)工具。并且把flash技術(shù)用在游戲設(shè)計(jì)上可以使其更加生動(dòng),并且便于上傳、下載。使得游戲便于網(wǎng)上交流,并且他完美結(jié)合的新時(shí)代的一起是時(shí)尚元素;網(wǎng)絡(luò)、互動(dòng)、及時(shí)、音樂、動(dòng)畫等,是的圖片獵人游戲更上一層樓。本次我利用flash制作一款提高記憶力的益智小游戲,該游戲能夠訓(xùn)練玩家的瞬間記憶力,可以短時(shí)間內(nèi)提高玩家的記憶力,滿足玩家的娛樂欲望,同時(shí)也激發(fā)了他們的挑戰(zhàn)性。1.2主要完成的工作及論文結(jié)構(gòu)1.2.1本文的主要工作通過鼠標(biāo)對(duì)圖片的點(diǎn)擊,翻開一張圖片,然后再點(diǎn)擊其他圖片,如果兩張圖片相同,則永久翻開,不然兩張圖片就都會(huì)重新合上。在規(guī)定的時(shí)間內(nèi)江所有的圖片都翻開就可以取得勝利。1.2.2論文結(jié)構(gòu)目錄-課題-前言-系統(tǒng)開發(fā)的相關(guān)技術(shù)介紹-系統(tǒng)的分析和設(shè)計(jì)-系統(tǒng)功能的具體實(shí)現(xiàn)和測試-總結(jié)-參考文獻(xiàn)-附錄系統(tǒng)開發(fā)的相關(guān)技術(shù)介紹2.1系統(tǒng)體系結(jié)構(gòu)模式的選擇 圖片獵人是一個(gè)典型的幾句二維陣列地圖的益智游戲。使用二維地圖編碼形式并基于這些編碼設(shè)計(jì)算法就可。2.2AS3.02.2.1AS3的技術(shù)特性ActionScript3有兩類特性:語言特性和FlashPlayerAPI特性。語言特性基本上是在ActionScript2之上構(gòu)建的,但是還有一些性能和功能方面的改進(jìn),包括:許多運(yùn)行時(shí)異常,用來改進(jìn)常見的錯(cuò)誤處理和調(diào)試。這些運(yùn)行時(shí)異常會(huì)顯示堆棧跟蹤,可以幫助開發(fā)人員輕松地找到錯(cuò)誤的根源。以前的ActionScript版本會(huì)悄悄地掩蓋錯(cuò)誤,以避免在Flash中出現(xiàn)錯(cuò)誤消息對(duì)話框。這在開發(fā)期間會(huì)造成困難,因?yàn)殚_發(fā)人員不了解可能出現(xiàn)的錯(cuò)誤,就無法開發(fā)出好產(chǎn)品。在運(yùn)行時(shí)存儲(chǔ)類型細(xì)節(jié),用來進(jìn)行檢查并保護(hù)系統(tǒng),因此ActionScript3是強(qiáng)類型的。這還有助于減少內(nèi)存使用量,因?yàn)轭愋托畔⒁员緳C(jī)機(jī)器表示法表示變量。ActionScript3完全符合ECMAScript第四版規(guī)范,這可以簡化XML解析。2.2.2AS3.0主要優(yōu)點(diǎn)運(yùn)行時(shí)排錯(cuò):錯(cuò)誤會(huì)在運(yùn)行時(shí)派出一場,以幫助調(diào)試影片。運(yùn)行時(shí)變量類型檢測:在回放是會(huì)檢測變量的類型是否合法。類封裝:靜態(tài)定義類增強(qiáng)性能。方法封裝:方法與他們相關(guān)的類實(shí)力綁定,因此在方法中的“this”將不會(huì)改變。E4X:一個(gè)新的,更易于操作的xml。正規(guī)表達(dá)式:支持的本地化正規(guī)表達(dá)式。命名空間:不但在xml中支持命名空間而且在類的定義中也同樣支持。Int和uint數(shù)據(jù)類型:新的數(shù)據(jù)變量類型允許AS3.0使用更快的整型數(shù)據(jù)來進(jìn)行計(jì)算。新的顯示列表模式:一個(gè)新的,自由度較大的管理屏幕上顯示對(duì)象方法。新的事件類型模式:一個(gè)新的基于偵聽器事件的模式。AS3.0完全面向?qū)ο?,完全使用類。AS3.0可以在楨上寫,可以在外部AS文件寫。AS3.0事件全用偵聽類。(三)系統(tǒng)分析和設(shè)計(jì)3.1系統(tǒng)分析圖片獵人是一種老少皆宜的益智簡單游戲。對(duì)于玩家自身沒有什么比較高的要求。圖片獵人是一個(gè)典型基于二維陣列地圖的益智游戲。使用二維地圖編碼方式并基于這些編碼設(shè)計(jì)。玩家通過自己對(duì)圖片的瞬時(shí)記憶,翻開兩張相同的圖片,就可以完成一部分的游戲,在規(guī)定的時(shí)間內(nèi)將所有的圖片全部完成配對(duì),就可以通過本關(guān)游戲,進(jìn)入下一關(guān)。3.2系統(tǒng)設(shè)計(jì)設(shè)計(jì)圖片角色圖片角色負(fù)責(zé)實(shí)現(xiàn)顯示哪張圖片以及翻開和蓋上圖片的功能。它是一個(gè)高度集成的影片剪輯。2)倒計(jì)時(shí)進(jìn)度條的設(shè)計(jì)倒計(jì)時(shí)進(jìn)度條用來直觀的顯示剩余時(shí)間,這種將數(shù)據(jù)顯示成直觀效果。3)游戲主場界面設(shè)計(jì)(四)系統(tǒng)功能的具體實(shí)現(xiàn)與測試4.1系統(tǒng)功能的實(shí)現(xiàn)1)設(shè)計(jì)圖片角色圖片角色負(fù)責(zé)實(shí)現(xiàn)顯示哪張圖片以及翻開和蓋上圖片的功能。它是一個(gè)高度集成的影片剪輯。影片剪輯中需要包含所有的卡片,圖片層中的每一幀都存儲(chǔ)一張圖片,由于游戲設(shè)計(jì)最大尺寸是6x6,所以一共有18張圖片。蓋子圖層存放著一個(gè)開關(guān)門的動(dòng)畫剪輯,通過腳本可以控制開啟或關(guān)閉,這樣對(duì)應(yīng)的圖片就被翻開或者是蓋上。蓋子遮罩圖層用來限制蓋子的顯示區(qū)域,是的這個(gè)區(qū)域正好與圖片所在區(qū)域吻合。圖片角色的屬性和方法如圖所示屬性和方法說明Index:int圖片的索引值Status:String圖片當(dāng)前的狀態(tài)(open或者closed)Init(index:int)初始化圖片openDoor()打開蓋子closeDoor()關(guān)上蓋子2)倒計(jì)時(shí)進(jìn)度條的設(shè)計(jì)倒計(jì)時(shí)進(jìn)度條用來直觀的顯示剩余時(shí)間,這種將數(shù)據(jù)顯示成直觀效果。底層遮罩中放一個(gè)影片剪輯,中心點(diǎn)與底色條的左端對(duì)其,大小正好蓋著底色條。進(jìn)度條會(huì)逐漸減少時(shí)間并且可以直觀反映,直到時(shí)間結(jié)束時(shí),可以調(diào)用住時(shí)間軸的timeout方法告知時(shí)間結(jié)束。游戲主場界面設(shè)計(jì)整個(gè)游戲布局在此步驟完成,首先在第一幀的位置添加游戲開始界面,然后再初始化游戲,在設(shè)計(jì)游戲中畫面,是的游戲能夠一層一層的繼續(xù)下去。4.2系統(tǒng)功能測試圖片角色設(shè)計(jì)完成后圖片角色的時(shí)間軸如圖所示:Action圖層的代碼:stop();varindex:int;varstatus:String;functionopenDoor(){ vars:SwapSound=newSwapSound(); s.play(); status="open"; door.gotoAndPlay("open");}functioncloseDoor(){ vars:SwapSound=newSwapSound(); s.play(); status="closed"; door.gotoAndPlay("close");}functioninit(i:int){ door.gotoAndStop(1); status="closed"; visible=false; index=i; gotoAndStop(int(index/2)+1);}進(jìn)度條測試完成后倒計(jì)時(shí)進(jìn)度條的時(shí)間軸如圖所示:Action圖層的代碼:importflash.events.TimerEvent;importflash.utils.Timer;varmaxTime:Number;vartimeLeft:Number;vartimer:Timer;stop();functionstartCount(){ timeLeft=maxTime; if(maxTime<=0||isNaN(maxTime)){ return; } timer=newTimer(1000,maxTime); timer.start(); timer.addEventListener(TimerEvent.TIMER,onTimer); timer.addEventListener(TimerEvent.TIMER_COMPLETE,onTimerComplete);}functionstopCount(){ timer.stop();}functiononTimer(TimerEvent){ timeLeft--; m.scaleX=timeLeft/maxTime; }functiononTimerComplete(TimerEvent){ stopCount(); MovieClip(parent).timeOut();}游戲主場界面測試完成后圖片角色的時(shí)間軸如圖所示:Action圖層的代碼:stop();varindex:int;varstatus:String;functionopenDoor(){ vars:SwapSound=newSwapSound(); s.play(); status="open"; door.gotoAndPlay("open");}functioncloseDoor(){ vars:SwapSound=newSwapSound(); s.play(); status="closed"; door.gotoAndPlay("close");}functioninit(i:int){ door.gotoAndStop(1); status="closed"; visible=false; index=i; gotoAndStop(int(index/2)+1);}完成后的游戲時(shí)間軸如圖所示其中第一幀為游戲開始的界面,第二幀為游戲初始化界面,第三幀為開始游戲中畫面,第八幀為游戲過關(guān)界面,第九幀為游戲失敗界面,第十幀為游戲通關(guān)界面。其中,第一幀審計(jì)有事開始界面,界面如圖所示:第二幀開始游戲,只有一張背景圖和一個(gè)顯示倒計(jì)時(shí)的時(shí)間進(jìn)度條。如圖所示:而第8、9、10幀游戲結(jié)束狀態(tài),即游戲過關(guān)、游戲失敗、游戲通關(guān)界面。其中第一關(guān)游戲界面,如圖所示:第二關(guān)游戲界面如圖所示:游戲失敗界面如圖所示:(五)總結(jié)此Flash小游戲是用flshaCS5.5軟件,利用楨,層,場景等,還有利用AS3.0語言,通過制作各種影片剪輯,按鈕,圖形等原件,來實(shí)現(xiàn)的。通過完成這個(gè)游戲,我熟悉了ActionScript語言,了解了flash的基本制作,雖然遇到了一些困難,但是在得到預(yù)期結(jié)果后,感受到了完成游戲后的喜悅和快感。參考文獻(xiàn)[1]JobeMarkar著.李鑫等譯.ActionScript大型網(wǎng)頁游戲開發(fā)北京:人民郵電出版社,2010.[2](美)GaryRosenzweig著.胡蓉等譯.ActionScript3.0游戲編程(第2版)[M].北京:人民郵電出版社,2012.[3]肖剛著Flash游戲編程教程清華大學(xué)出版社,2009

附錄:代碼第一幀:游戲初始參數(shù)及圖片角色的數(shù)組stop();bt_start.addEventListener(MouseEvent.CLICK,startGame);functionstartGame(evt:MouseEvent){ gotoAndPlay("init");}varstartx=35,starty=70;varlevel:int=1;//游戲的關(guān)卡,第1關(guān)2×2,第2關(guān)4×4,第3關(guān)6×6varbrickList:Array=newArray();varmatrix:Array;vargameTime:int=10;for(vari=0;i<36;i++){ varbrick:Brick=newBrick(); brick.init(int(i)); addChild(brick); brickList.push(brick);}functiontimeOut(){ gotoAndPlay("lose");}第二幀:初始游戲中國場景,布置圖塊分布init();functioninit(){ for(vari=0;i<36;i++){ brickList[i].init(i);//將所有方塊都初始化 } varw:Number,h:int;//方塊的寬度和高度 varlen:int=level*2; w=h=300/(level*2);//計(jì)算方塊的大小 //建立舞臺(tái)上的方塊陣列 matrix=newArray(level*2); for(i=0;i<level*2;i++){ matrix[i]=newArray(level*2); } varl:int,r:int;//方塊的所在行和所在列 for(i=0;i<len*len;i++){ //在方塊陣列上隨機(jī)選取一個(gè)空位 do{ l=int(Math.random()*level*2); r=int(Math.random()*level*2); }while(matrix[l][r]!=undefined); //將第i個(gè)方塊放在這個(gè)位置。 matrix[l][r]=brickList[i]; //設(shè)置這個(gè)方塊的各種屬性 matrix[l][r].x=w*r+startx; matrix[l][r].y=h*l+starty; matrix[l][r].width=w; matrix[l][r].height=h; matrix[l][r].visible=true; } //游戲時(shí)間設(shè)置 timeBar.maxTime=gameTime; timeBar.startCount();}第三幀:處理玩家的鼠標(biāo)點(diǎn)擊操作。stop();vargoCheck:Boolean;varfirstBrick:int,secondBrick:int;action();functionaction(){ vari,j; for(iinmatrix){ for(jinmatrix[i]){ matrix[i][j].addEventListener(MouseEvent.MOUSE_DOWN,clickBrick); } } goCheck=false;}functionclickBrick(evt:MouseEvent){ if(evt.currentTarget.status!="closed"){ return; } evt.currentTarget.openDoor(); if(goCheck==false){ firstBrick=evt.currentTarget.index; goCheck=true; return; } secondBrick=evt.currentTarget.index; unaction(); play();}functionunaction(){ vari,j; for(iinmatrix){ for(jinmatrix[i]){ matrix[i][j].removeEventListener(MouseEvent.MOUSE_DOWN,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論