freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java超級(jí)瑪麗游戲計(jì)算機(jī)-資料下載頁

2024-12-06 02:48本頁面

【導(dǎo)讀】隨著計(jì)算機(jī)技術(shù)及網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,電子游戲越來越普及。經(jīng)典游戲“超級(jí)瑪。有極高的知名度。Java語言作為一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,在游戲設(shè)計(jì)方面具有獨(dú)特優(yōu)勢。Java語言由C++語言發(fā)展而來,但比C++語言簡單。它具有簡單、與平臺(tái)無關(guān)、高效、安全、多線程等特點(diǎn),在游戲設(shè)計(jì)開發(fā)方面得到廣泛應(yīng)用。本課題在大學(xué)生自主創(chuàng)業(yè)的。目前該版本游戲已經(jīng)發(fā)布在學(xué)校的公共論壇上,已被許多同學(xué)下載并試玩,反。論文包括緒論、相關(guān)技術(shù)研究、可行性分析、系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)以及結(jié)論等

  

【正文】 s t B u f f e r e d I m a g e s t a r t I m a g e : B u f f e r e d I m a g e e n d I m a g e : B u f f e r e d I m a g e b g I m a g e : B u f f e r e d I m a g e a l l F l o w e r I m a g e : L i s t B u f f e r e d I m a g e a l l T r i a n g l e I m a g e : L i s t B u f f e r e d I m a g e a l l T u r t l e I m a g e : L i s t B u f f e r e d I m a g e a l l O b s t r u c t i o n I m a g e : L i s t B u f f e r e d I m a g e m a r i o D e a d I m a g e : B u f f e r e d I m a g e i m a g e P a t h : s t r i n gM a r i o : : S t a t i c V a l u e 圖 游戲 StaticValue 類圖 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 17 的主要屬性如下: allMarioImage:與 Mario 所有有關(guān)的圖片 startImage:游戲開始圖片 endImage:游戲結(jié)束圖片 bgImage:游戲背景圖片 allTriangleImage:蘑菇怪有關(guān)的圖片 allTurtleImage:烏龜怪有關(guān)的圖片 allObstructionImage:游戲道具有關(guān)圖片 MarioDeadImage: Mario 死亡圖片 ImagePath:圖片保存路徑 的主要方法如下: Init():初始化方法,將上述 StaticValue 中的屬性通過傳入?yún)?shù)進(jìn)行賦值,和圖片真實(shí) 路徑對(duì)應(yīng)起來。 MyFrame 類圖 MyFrame 類是繼承于 java swing 圖形庫中 JFrame 框架的類,用于實(shí)現(xiàn)游戲界面的繪制,將和游戲顯示有關(guān)的組件加入到框架中。與 MyFrame 有關(guān)的類圖如下圖 所示: + m a i n ( i n a r g s : s t r i n g ) : v o i d+ M y F r a m e ( )+ K e y P r e s s e d ( i n e : K e y E v e n t ) : v o i d+ K e y R e l e a s e d ( i n e : K e y E v e n t ) : v o i d+ K e y T y p e d ( i n e : K e y E v e n t ) : v o i d+ p a i n t ( i n g : G r a p h i c s ) : v o i d+ r u n ( ) a l l B G : L i s t B u f f e r e d I m a g e i s S t a r t : b o o l m a r i o : M a r i o n o w B G : B u f f e r e d I m a g e t : T h r e a dM a r i o : : M y F r a m e 圖 游戲 MyFrame 類圖 類的主要屬性如下: allBG:所有背景圖片 isStart:是否游戲開始 Mario: Mario 類的實(shí)例對(duì)象 nowBG:當(dāng)前的背景圖片 t:線程對(duì)象 類的主要方法: Main:主方法 MyFrame:構(gòu)造方法 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 18 KeyPressed:按鍵按下監(jiān)聽方法 KeyReleased:按鍵釋放監(jiān)聽方法 KeyTyped:按鍵連按監(jiān)聽方法 Paint:屏幕重繪方法 Run:線程運(yùn)行方法 游戲功能與代碼實(shí)現(xiàn) 游戲功能 游戲的基本功能主要根據(jù)游戲的游戲要素分為以下幾個(gè)主要問題: 1 Mario 的移動(dòng)和跳躍動(dòng)作控制的實(shí)現(xiàn) 2 Mario 遇到障礙物時(shí)將導(dǎo)致障礙物狀態(tài)的變化或者 Mario 自身狀態(tài)的變化 3 Mario 在執(zhí)行跳躍動(dòng)作的同時(shí)如果包含 方向性,將對(duì) Mario 的運(yùn)動(dòng)方式造成改變 因此,我們需要對(duì)這些問題進(jìn)行深化,并加入一些設(shè)定來保證這些問題能被解決,基本覆蓋各種判定條件。 1 當(dāng) Mario 沒有遇到障礙物或者敵人時(shí),如果 Mario 在一段平直路段上行走,應(yīng)有一個(gè)表示狀態(tài)的變量標(biāo)識(shí) Mario 處于著陸狀態(tài),并同時(shí)基本狀態(tài)為移動(dòng) +方向。 2 當(dāng) Mario 在空中時(shí)(即已發(fā)生跳躍),如果同時(shí)有方向操作的輸入,則應(yīng)該的基本狀態(tài)應(yīng)該為跳躍 +方向。并應(yīng)該有一個(gè)變量用于控制 Mario 的上升高度或者上升力度,當(dāng)這個(gè)變量達(dá)到一定閥值時(shí), Mario 的坐標(biāo)應(yīng)相應(yīng)發(fā)生 降低,直到落到一個(gè)障礙物或者水平路段上后方可以重新跳躍,在降落過程中 Mario 仍可以根據(jù)輸入方向來調(diào)整位置和朝向。 2) 當(dāng) Mario 碰到敵人時(shí),如果是在非跳躍狀態(tài)時(shí),會(huì)被敵人殺死。如果在跳躍狀態(tài)時(shí),則敵人會(huì)被殺死。 當(dāng) Mario 遇到高直的障礙物時(shí),應(yīng)采用位置判斷來決定 Mario 是否可以繼續(xù)移動(dòng),只有當(dāng)離開障礙物所處的坐標(biāo)及影響范圍外, Mario 才可以繼續(xù)移動(dòng)。 代碼實(shí)現(xiàn) 本環(huán)節(jié)根據(jù) Mario 類中的部分代碼,來展示對(duì)游戲進(jìn)行中的一些關(guān)鍵環(huán)節(jié)的分析過程,通過代碼說明主要的執(zhí)行步驟。 public void leftMove(){ xmove=5。 if((jumping)!=1){ =leftjumping。 }else{ =leftmoving。 } } 以上是 Mario 的左移方法,如果當(dāng)前 Mario 處于跳躍狀態(tài),則將狀態(tài)改為找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 19 leftjumping,否則改為 leftmoving,同理可得對(duì)應(yīng)的右移方法 rightMove()。 public void leftStop(){ xmove=0。 if((jumping)!=1){ =leftjumping。 }else{ =leftstanding。 } } 以上是 Mario 的左移停止方法,如果當(dāng)前的 Mario 處于跳躍狀態(tài),則將狀態(tài)改為leftjumping,否則改為 leftstanding,同理可得對(duì)應(yīng)右移停止方法 leftStop()。 public void jump(){ if((jumping)==1){ if((left)!=1){ =leftjumping。 }else{ =rightjumping。 } ymove=5。 upTime=38。 } } 以上是跳躍方法,判斷 Mario 的狀態(tài)是否包含有是 jumping 字段,并根據(jù)方向來確定是向左面跳 還是向右面跳。并加上一個(gè)閥值 upTime 來限定 Mario 的跳躍力度。 public void down(){ if((left)!=1){ =leftjumping。 }else{ =rightjumping。 } ymove=5。 } 以上是降落方法,判斷 Mario 的跳躍狀態(tài)和方向,并對(duì) Mario 所處高度進(jìn)行降低處理 對(duì)于復(fù)寫 Runnable 接口中 run 方法,不給出全部代碼,僅對(duì)關(guān)鍵代碼進(jìn)行說明: for(int i=0。i().size()。i++){ Obstruction ob =().get(i)。 if(()==+60 amp。amp。 (()+50 amp。amp。 ()50)){ 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 20 if(()!=3){ canRight=false。 } } if(()== amp。amp。 (()+50 amp。amp。 ()50)){ if(()!=3){ canLeft=false。 } } if(()==+60 amp。amp。 (()+60 amp。amp。 ()60)){ if(()!=3){ onLand=true。 } } if(()== amp。amp。 (()+50 amp。amp。 ()50)){ if(()==0){ ().remove(ob)。 ().add(ob)。 } if((()==4 || ()==3) amp。amp。 upTime0){ (2)。 ()。 } upTime=0。 } 以上代碼分析 Mario 在移動(dòng)過程中是否遇到了障礙物,如果干擾到其運(yùn)行,則設(shè)置canRight 和 canLeft 這些 bool 變量的值來說明 Mario 是否還能向左走或者右走,并且僅當(dāng) Mario 沒有碰到食人花的時(shí)候,當(dāng) Mario 通過當(dāng)前的環(huán)節(jié)時(shí),清除場景中的所有障礙物,并載入下個(gè)場景信息 。 for (int i=0。i().size()。i++){ Enemy e=().get(i)。 if(()+50 amp。amp。 ()50 amp。amp。 (()+60 amp。amp。 ()60)){ ()。 } if(()==+60 amp。amp。 (()+60 amp。amp。 ()60)){ if(()==1){ ()。 =10。 =5。 }else if (()==2){ 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 21 ()。 } } 以上代碼對(duì) Mario遇到敵人時(shí),對(duì)雙方的狀態(tài)進(jìn)行判定,如果 Mario的位置縱坐標(biāo)處于敵人的高度,則 Mario死亡,如果 Mario在敵人 的頭上,則敵人死亡。 核心類代碼 Myframe 類 package 。 import 。 import 。 import 。 import 。 import 。 import 。 import 。 import 。 import 。 import 。 import 。 public class MyFrame extends JFrame implements KeyListener,Runnable { private ListBackGround allBG=new ArrayListBackGround()。 private Mario mario=null。 private BackGround nowBG=null。 private Thread t= new Thread(this)。 private boolean isStart=false。 public static void main(String[] args){ new MyFrame()。 } public MyFrame(){ (java 版超級(jí)瑪麗 )。 (900, 600)。 int width=().getScreenSize().width。 int height=().getScreenSize().height。 ((width900)/2,(height600)/2)。 找畢業(yè)設(shè)計(jì)、項(xiàng)目源碼、編程視頻,就上碼農(nóng)網(wǎng) manong365 22 ()。 ()。 (true)。 (false)。 for(int i=1。i=3。i++){ (new BackGround(i,i==3?true:false))。 } =(0)。 =new Mario(0,480)。 (nowBG)。 ()。 (this)。 ()。 } public void paint(Graphics g){ BufferedImage image=new BufferedIma
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1