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

正文內(nèi)容

基于java的推箱子游戲(編輯修改稿)

2025-06-12 20:08 本頁面
 

【文章內(nèi)容簡介】 Java 的屬性之一, Java 的應(yīng)用涉及許多領(lǐng)域,如手機(jī)、單機(jī)程序及瀏覽器等,不同的平臺對于它的設(shè)定不盡相同 ,若將顯示平臺獨立為一個類,將有助于主程序的完整性及移植程序的快速性。 仰恩大學(xué)畢業(yè)設(shè)計(論文) 9 注意事項 小 游戲在設(shè)計時 要注意繪圖部分的設(shè)計 代碼 ,還要注意 通過輸入流讀取 地圖文件與圖像文件部分的設(shè)計代碼等等。 游戲流程圖 圖 1 系統(tǒng)功能模塊 系統(tǒng)功能模塊 初始化模塊 繪圖模塊 移動小人模塊 移動箱子模塊 功能控制模塊 仰恩大學(xué)畢業(yè)設(shè)計(論文) 10 游戲總體結(jié)構(gòu)與代碼 推箱子的小游戲界面如圖 所示: 圖 小游戲界面 由圖 可以看出,本小游戲的界面簡潔、直觀,從界面中可以直接得到本小游戲的相關(guān)功能操作信息。 ( 1) 界面框架與按鈕設(shè)計 界面設(shè)計中包括了所有玩家可以直 觀見到的圖形界面,窗體的大小,界面中的功能按鈕,讓玩家可以方便使用操作。界面中的按鈕包括:“悔一步”,“重來”,“上一關(guān)”,“下一關(guān)”,“第 1 關(guān)”,“最終關(guān)”,“選關(guān)”。并且 各個按鈕的名稱與相關(guān)功能為: “ 悔一步 ” :返回上一移動狀態(tài)(可以連續(xù)返回多步); 仰恩大學(xué)畢業(yè)設(shè)計(論文) 11 “ 重來 ” :重新開始當(dāng)前關(guān); “ 上一關(guān) ” :返回到當(dāng)前關(guān)的上一關(guān); “ 下一關(guān) ” :跳轉(zhuǎn)到當(dāng)前關(guān)的下一關(guān); “ 第 1 關(guān) ” :游戲系統(tǒng)默認(rèn)開始關(guān)為第一關(guān),此按鈕讓玩家可以方便從其它關(guān)卡直接跳轉(zhuǎn)到第一關(guān); “ 最終關(guān) ” :可以跳轉(zhuǎn)到最后一關(guān),即游戲系統(tǒng)默認(rèn)的最后一個 關(guān)。 “ 選 關(guān) ” : 選擇想要挑戰(zhàn)的關(guān)卡。 其中,這個部分的部分代碼為: public class GameTxz { public static void main(String[] args) { new mainFrame()。 } } class mainFrame extends JFrame implements ActionListener { JButton btnrenew,btnlast,btnnext,btnchoose,btnfirst,btnover,btnback。 mainpanel panel。 mainFrame() { super(推箱子小游戲 )。 setBounds(150,20,700,690)。 setVisible(true)。 setResizable(false)。 setDefaultCloseOperation()。 Container cont=getContentPane()。 (null)。 ()。 btnback=new JButton(悔一步 )。 btnrenew=new JButton(重來 )。 btnlast=new JButton(上一關(guān) )。 btnnext=new JButton(下一關(guān) )。 仰恩大學(xué)畢業(yè)設(shè)計(論文) 12 btnfirst=new JButton(第1關(guān) )。 btnover=new JButton(最終關(guān) )。 btnchoose=new JButton(選關(guān) )。 add(btnrenew)。 add(btnlast)。 add(btnnext) 。 add(btnchoose)。 add(btnfirst)。 add(btnover)。 add(btnback)。 (20,15,80,30)。 (this)。 (120,15,80,30)。 (this)。 (220,15,80,30)。 (this)。 (320,15,80,30)。 (this)。 (420,15,75,30)。 (this)。 (510,15,75,30)。 (this)。 (600,15,75,30)。 (this)。 panel=new mainpanel()。 add(panel)。 ()。 ()。 validate()。 } } ( 2) 地圖的繪制形成 地圖以二維數(shù)組的形式進(jìn)行存儲,不同的數(shù)家代表了不同的含義。在本小游戲的地圖文件中, 0~9 這十個數(shù)字的定義 如下所示 : 編號 0: 代表未定義的區(qū)域; 仰恩大學(xué)畢業(yè)設(shè)計(論文) 13 編號 1: 代表障礙物 (或者邊界); 編號 2: 代表草地; 編號 3: 代表箱子(未到指定位置); 編號 4: 代表目的地; 編號 5: 代表小人向下移動方向; 編號 6: 代表小人向左移動方向; 編號 7: 代表小人向右移動方向; 編號 8: 代表小人向上移動方向; 編號 9: 代表到達(dá)指定位置時的箱子。 例如下圖 所示(左邊是二維數(shù)組的地圖文件,右邊是相對應(yīng)的小游戲界面): 圖 地圖文件與相應(yīng)界面 ( 3) 推箱子 小 游戲的游戲性 其主要功能是給用戶一個良好的游戲界面,游戲中包括 45 關(guān)的地圖文件 。 地圖文件是是先寫好 的 ,所有界面信息以數(shù)家的形式存放在一個 20*20 的二維數(shù)組當(dāng)中 并且把這些地圖文件統(tǒng)一放在一個地圖文件中,便于程序調(diào)用地圖文件。 然后, 每一關(guān) 就 會按照 這些 數(shù)組數(shù)據(jù)重新繪制地圖,從而達(dá)到小游戲的可用性 及其相應(yīng)的目的 。 ( 4) 小人與箱子移動的算法 小人與箱子的移動中包括了正移動以及“悔一步”的負(fù)移動。 仰恩大學(xué)畢業(yè)設(shè)計(論文) 14 正移動:小人向上、下、左、右的移動是一個 判斷算法,其判斷都是通過判斷小人前面是否是草地或者是箱子亦或者是障礙物(或者邊界)。如果是障礙物或者是邊界,就不能夠進(jìn)行移動;如果是沒有箱子或者是障礙物,就可以自由移動;又如果 是有箱子,就要判斷是否可以移動箱子,最后再討論箱子被推過的位置,小人移動的位置,以及它們的原位置和被遮擋住的新位置的圖形變化等等,需要運用算法使其重新繪制地圖,填補(bǔ)空白。算法判斷完畢后,傳出數(shù)據(jù)并且將其 記錄 在一個堆棧中,以備“悔一步” 時使用。 負(fù)移動:通過記錄在堆棧中的數(shù)據(jù)來判斷,前一步小人的移動方向以及移動中使用過的算法,逆向?qū)⒋a重新運行,同時繪制并刷新地圖以達(dá)到前一步的狀態(tài)。 其中,這個部分的部分代碼為: void moveup() { if(map[manY1][manX]==2||map[manY1][manX]==4) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4。 else map[manY][manX]=2。 map[manY1][manX]=8。 repaint()。manY。(10)。 } else if(map[manY1][manX]==3) { if(map[manY2][manX]==4) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4。 else map[manY][manX]=2。 map[manY1][manX]=8。map[manY2][manX]=9。 repaint()。manY。(11)。 } else if(map[manY2][manX]==2) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4。 else map[manY][manX]=2。 map[manY1][manX]=8。map[manY2][manX]=3。 repaint()。manY。(11)。 仰恩大學(xué)畢業(yè)設(shè)計(論文) 15 } else { map[manY][manX]=8。 repaint()。 } } else if(map[manY1][manX]==9) { if(map[manY2][manX]==4) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4。 else map[manY][manX]=2。 map[manY1][manX]=8。map[manY2][manX]=9。 repaint()。manY。(11)。 } else if(map[manY2][manX]==2) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4。 else map[manY][manX]=2。 map[manY1][manX]=8。map[manY2][manX]=3。 repaint()。manY。(11)。 } else {map[manY][manX]=8。repaint()。} } if(map[manY1][manX]==1) { map[manY][manX]=8。repaint()。 } } void backup(int t) { int n=t。 if(n==10) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) {map[manY][manX]=4。} 仰恩大學(xué)畢業(yè)設(shè)計(論文) 16 else map[manY][manX]=2。 } else if(n==11) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) {map[manY][manX]=9。} else map[manY][manX]=3。 if(maptmp[manY1][manX]==4||maptmp[manY1][manX]==9) {map[manY1][manX]=4。} else map[manY1][manX]=2。 } map[manY+1][manX]=8。repaint()。manY++。 } void movedown() { if(map[manY+1][manX]==2||map[manY+1][manX]==4) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4。 else map[manY][manX]=2。 map[manY+1][manX]=5。 repaint()。manY++。(20)。 } else if(map[manY+1][manX]==3) { if(map[manY+2][manX]==4) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4。 else map[manY][manX]=2。 map[manY+1][manX]=5。map[manY+2][manX]=9。 repaint()。manY++。(21)。 } else if(map[manY+2][manX]==2) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4。 else map[manY][manX]=2。 仰恩大學(xué)畢業(yè)設(shè)計(論文) 17 map[manY+1][manX]=5。map[manY+2][manX]=3。 repaint()。manY++。(21)。 } else {map[manY][manX]=5。repaint()。} } else if(map[manY+1][manX]==9) { if(map[manY+2][manX]==4) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4。 else map[manY][manX]=2。 map[manY+1][manX]=5。map[manY+2][manX]=9。 repaint()。manY++。(21)。 }
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1