版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p> 題目:基于Java俄羅斯方塊游戲的設(shè)計與實現(xiàn)</p><p> 姓 名: 賈明 </p><p> 學(xué) 號: 1042157134 </p><p> 專 業(yè): 計算機(jī)
2、科學(xué)與技術(shù) </p><p> 院 系: 信息工程學(xué)院 </p><p> 指導(dǎo)老師: 朱珍元 </p><p> 職稱學(xué)位: 講師/碩士 </p><p> 完成時間: 2014.3.3 </p>&l
3、t;p><b> 教務(wù)處制</b></p><p> 安徽新華學(xué)院本科畢業(yè)論文(設(shè)計)獨(dú)創(chuàng)承諾書</p><p> 本人按照畢業(yè)論文(設(shè)計)進(jìn)度計劃積極開展實驗(調(diào)查)研究活動,實事求是地做好實驗(調(diào)查)記錄,所呈交的畢業(yè)論文(設(shè)計)是我個人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。據(jù)我所知,除文中特別加以標(biāo)注引用參考文獻(xiàn)資料外,論文(設(shè)計)中所有數(shù)據(jù)均
4、為自己研究成果,不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果。與我一同工作的同志對本研究所做的工作已在論文中作了明確說明并表示謝意。</p><p> 畢業(yè)論文(設(shè)計)作者簽名: </p><p> 日期: </p><p> 基于Java俄羅斯方塊游戲的設(shè)計與實現(xiàn)</p><p>
5、<b> 摘 要</b></p><p> 俄羅斯方塊是起源于俄羅斯的教育軟件之一。俄羅斯方塊不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。俄羅斯方塊即有現(xiàn)代休閑的明顯特征“短、平、快”,又有古典哲學(xué)的高深學(xué)問“水滿則溢,月盈則虧”;即具有簡單易學(xué)的特性,為人民所喜愛。又有深奧的技巧和高水平操作。俄羅斯方塊的文化源遠(yuǎn)流長,具有東方的神秘和西方的直觀;既有“面”的概念,亦
6、有“點(diǎn)”的連接。俄羅斯方塊起源于俄羅斯,發(fā)展于歐洲,風(fēng)靡于世界,可以說俄羅斯方塊是中西方文化的交流點(diǎn),是古今哲學(xué)的結(jié)晶。所以以此為背景,我開發(fā)了一個與眾不同的俄羅斯方塊,以迎合現(xiàn)代人對于休閑游戲的需求。它不僅有俄羅斯方塊游戲的基本玩法,還有一些獨(dú)特的東西,以滿足現(xiàn)代人對游戲興趣。該游戲采用eclipse工具,使用java的用戶圖形界面技術(shù)(Swing)開發(fā),畫面優(yōu)美,可玩性強(qiáng)。下面就請大家具體了解這款游戲吧!</p>&l
7、t;p> 關(guān)鍵詞:休閑游戲;Java圖形用戶界面;面向?qū)ο笳Z言的游戲開發(fā);eclipse的使用; </p><p> Based on the technique of Swing Tetris design and research</p><p><b> Abstract</b></p><p> Tetris is one
8、 of the education software originated in Russia. Tetris can not only enhance thinking ability, improve intelligence, and high in philosophy, helps to cultivate one's morality raises a gender. Tetris have obvious char
9、acteristics of modern leisure "short, flat, fast", and has a profound knowledge of classical philosophy "Water overflows over the loss", with the characteristics of easy to learn, for the people. Have
10、 deep skills and high-level operation. Tetris culture has a long histor</p><p> Key Words: Casual games; Java graphical user interface; An object-oriented language game development; The use of the eclipse;
11、 </p><p><b> 目 錄</b></p><p> 1 緒 論……………..…………………………………………………×</p><p> 1.1 游戲開發(fā)背景………….……………………………..………..……×</p><p> 1.2 開發(fā)可行性分析……….……………………
12、………..………..……×</p><p> 2 游戲設(shè)計……………..……………..…………………………………×</p><p> 2.1 游戲設(shè)計目標(biāo)……..……………..…………………………………×</p><p> 2.2 系統(tǒng)功能結(jié)構(gòu)……..……………..…………………………………×</p>&l
13、t;p> 2.3 游戲界面設(shè)計……..……………..…………………………………×</p><p> 2.3.1按鈕設(shè)計……..……………..…………………………….………×</p><p> 2.3.2主界面設(shè)計…..……………..…………………………….………×</p><p> 2.3.3 游戲界面設(shè)計..…………….
14、.………...………………….………×</p><p> 2.3.4 選擇關(guān)卡界面設(shè)計…………..……..………………….…...……×</p><p> 2.3.5 游戲設(shè)計界面設(shè)計…………..……..………………….…...……×</p><p> 3 代碼設(shè)計……………..……………..…………………………………×
15、</p><p> 3.1 代碼設(shè)計介紹……………..…………………………..……………×</p><p> 3.2 游戲開始動畫功能的實現(xiàn)……………..……..……………………×</p><p> 3.3 主界面窗體功能的實現(xiàn)……………..…………..…………………×</p><p> 3.4 俄羅斯方
16、塊的模塊設(shè)計……………..…………..…………………×</p><p> 3.4.1 俄羅斯方塊的設(shè)計方式…………..…………..…………………×</p><p> 3.4.2 俄羅斯方塊的代碼設(shè)計…………..…………..…………………×</p><p> 4 結(jié)論…………..…………..……………………………………………
17、5;</p><p> 致謝…………..…………..………………………………………………×</p><p> 參考文獻(xiàn)…………..…………..…………………………………………×</p><p><b> 1 緒 論</b></p><p> 1.1 游戲開發(fā)背景</p>&l
18、t;p> 休閑游戲是目前最大的游戲市場,各類游戲程序?qū)映霾桓F,其中包括棋牌、網(wǎng)游、益智、養(yǎng)成、對戰(zhàn)平臺等很多游戲種類,而且日后會不斷的擴(kuò)充。俄羅斯方塊作為典型的益智類游戲,相信每個人都會,但是傳統(tǒng)的俄羅斯方塊游戲界面色彩單調(diào),功能單一。本人所設(shè)計的俄羅斯方塊軟件無論從界面還是功能上都有很大的改進(jìn)??梢詽M足很大一部分人的需求。</p><p> 1.2 開發(fā)可行性分析</p><p&g
19、t; 隨著計算機(jī)的普及,無論是在計算機(jī)平臺還是移動平臺,休閑游戲已成為眾多用戶的共同需求。</p><p> 憤怒的小鳥、捕魚達(dá)人和神廟逃亡的火爆就能驗證了休閑游戲的商業(yè)價值。休閑游戲就像是一個心靈的工具,如果你能進(jìn)入一個人的心靈,那么就能創(chuàng)造無限的可能。</p><p> 俄羅斯方塊從一個教育用的軟件到家喻戶曉的游戲,經(jīng)過這么多年的發(fā)展依然很有市場。無論是Google play市場
20、還是蘋果市場俄羅斯方塊類型的游戲依然保持著很高的下載率。所以現(xiàn)代人對于俄羅斯方塊,尤其是與眾不同的俄羅斯方塊有很大的需求。</p><p> 本人的俄羅斯方塊軟件,在技術(shù)上采用Java語言的Swing技術(shù)開發(fā),因為如同任何人類語言一樣,Java提供了一種表達(dá)概念的方式。如果使用得當(dāng),隨著問題變得更龐大更復(fù)雜,這種表達(dá)工具將會比別的可供選擇的語言更為簡單、靈活[1]。此俄羅斯方塊不僅畫面艷麗,可玩性高,即保留了俄
21、羅斯方塊固有的屬性規(guī)則,還有一些新的設(shè)計玩法在里面,從而滿足了現(xiàn)代人對于休閑游戲的需求。</p><p><b> 2 游戲設(shè)計</b></p><p> 2.1 游戲設(shè)計目標(biāo)</p><p> 根據(jù)人民對休閑游戲的需求和俄羅斯方塊的游戲規(guī)則,現(xiàn)制定系統(tǒng)實現(xiàn)目標(biāo)如下:</p><p> 界面設(shè)計簡介、美觀、采用俄
22、式建筑作為背景,要吸引游戲者的眼球。</p><p> 提供3中選擇模式,正常模式、瘋狂模式、選擇關(guān)卡模式。</p><p> 在所以游戲模式下都播放優(yōu)美的背景音樂,每次銷行都有音效提示,以提高游戲者的興趣。</p><p> 人性化的游戲設(shè)置,可以讓游戲者自己選擇開啟關(guān)閉音效。</p><p> 在游戲界面對操作方法進(jìn)行明顯的展示,
23、游戲通過上下左右和空格鍵進(jìn)行控制,上(變形)、下(加速下降)、左(往左)、右(往右)、空格(直接下落到底部)。</p><p> 為了游戲者對游戲難度的需求,隨著游戲分?jǐn)?shù)的增加,關(guān)卡數(shù)也會逐步增加,游戲難度也隨之上升。</p><p> 在游戲中過關(guān)會有特殊的音效,讓游戲者有滿足感。</p><p> 支持暫停與繼續(xù),給予游戲者停止游戲的權(quán)利。</p&g
24、t;<p> 在游戲失敗的時候有明顯的提示,并且表達(dá)出遺憾,讓游戲者繼續(xù)挑戰(zhàn)自己的極限。</p><p> 2.2 系統(tǒng)功能結(jié)構(gòu)</p><p> 俄羅斯方塊包括游戲操作,游戲設(shè)置,游戲音效三打部分。其中游戲操作可以細(xì)分為幾個子功能。具體結(jié)構(gòu)如圖2.1。</p><p><b> 圖2.1</b></p>&
25、lt;p> 2.3 程序界面設(shè)計</p><p> 軟件的主窗體決定了用戶對程序的第一印象,游戲軟件更需要一個好的界面,它可以給用戶留下美好的印象并且吸引更多的用戶[2]。</p><p> 2.3.1 按鈕設(shè)計</p><p> 程序運(yùn)行以后,首先顯示的是主界面。在主界面中用的是俄羅斯建筑。并且用明顯的字體突出游戲的名稱。在主界面中的按鈕采用的是當(dāng)下
26、最流行的扁平化設(shè)計又加以陰影突出,即簡約,又不失情調(diào)。按鈕樣式如圖2.2。</p><p><b> 圖2.2</b></p><p> 2.3.2 主界面設(shè)計</p><p> 在主界面,按鈕分別是開始游戲、瘋狂模式、選擇關(guān)卡、游戲設(shè)置、退出游戲。5個按鈕分別承擔(dān)不同的功能。按鈕與主界面的搭配也體現(xiàn)出俄羅斯的風(fēng)格和美感。</p&g
27、t;<p> 主界面的設(shè)計如圖2.3:</p><p><b> 圖2.3</b></p><p> 2.3.3 游戲界面設(shè)計</p><p> 在點(diǎn)擊開始游戲和瘋狂模式后會直接進(jìn)入游戲畫面。游戲畫面由6部分組成。首先映入眼簾的是俄羅斯方塊的網(wǎng)格。方塊采用的也是扁平化設(shè)計,以保證風(fēng)格的統(tǒng)一。在網(wǎng)格左側(cè)是游戲名稱和返回按鈕兩
28、個模塊。在網(wǎng)格的右側(cè)是提示下一個方塊區(qū)域。還有提示區(qū)域,在提示區(qū)域中有分?jǐn)?shù)、關(guān)卡、暫停繼續(xù)的按鍵提示。在提示區(qū)域的下方還有游戲的操作說明,可以使玩家以最快速度熟悉游戲操作。游戲界面設(shè)計如圖2.4:</p><p><b> 圖2.4</b></p><p> 2.3.4 選擇關(guān)卡界面設(shè)計</p><p> 在主界面點(diǎn)擊選擇關(guān)卡按鈕后,會彈
29、出一個選擇關(guān)卡的對話框。在對話框中會有一個下拉列表以方便玩家選擇。在選擇關(guān)卡對話框中點(diǎn)擊開始游戲按鈕會進(jìn)入到游戲界面,因為游戲界面在前面介紹過,所以在此不再贅述。選擇關(guān)卡對話框的界面設(shè)計如圖2.5。</p><p><b> 圖2.5</b></p><p> 2.3.5 游戲設(shè)計界面設(shè)計</p><p> 在主界面點(diǎn)擊游戲設(shè)置按鈕后,會
30、進(jìn)入游戲設(shè)置畫面。游戲設(shè)置界面的字體采用的與主界面的一樣,目的都是為了醒目的突出主題。游戲設(shè)置界面設(shè)計的與主界面一樣簡潔,統(tǒng)一了視覺效果。游戲界面的界面設(shè)計如圖2.6:</p><p><b> 圖2.6</b></p><p><b> 3 代碼設(shè)計</b></p><p> 3.1 代碼設(shè)計介紹</p>
31、;<p> 在程序設(shè)計語言上,我選擇的是Java,因為使用Java語言編寫的程序能夠不做修改地在任何一臺計算機(jī)上正確的運(yùn)行,即“一次編寫,到處運(yùn)行”[3]。而可以降低開發(fā)成本和后期維護(hù)的開銷。</p><p> 在代碼設(shè)計中,我采用是模塊化設(shè)計,并且遵守編程規(guī)范。所有類和變量的命名都采用非常容易理解的英語單詞和中文拼音。我也使用了適量而恰當(dāng)?shù)淖⑨?。因為適量而恰當(dāng)?shù)淖⑨屖橇己玫木幊田L(fēng)格的重要體現(xiàn)。
32、是一種程序規(guī)范[4]。</p><p> 3.2 游戲開始動畫功能的實現(xiàn)</p><p> 游戲的開始動畫為獨(dú)立的一個類,目的是為了保證程序的運(yùn)行效率和后期修改升級的方便。邏輯結(jié)構(gòu)如圖3.1:</p><p><b> 圖3.1</b></p><p> 功能實現(xiàn)的代碼如下:</p><p&g
33、t; package com.show;</p><p> import java.awt.*;</p><p> import java.io.*;</p><p> import java.util.*;</p><p> import javax.imageio.ImageIO;</p><p> i
34、mport javax.swing.*;</p><p> //游戲開始的動畫類</p><p> public class StartDisplay {</p><p> public static JFrame f;// 創(chuàng)建公開的框架的引用</p><p> public static final int WIDTH = 400
35、;// 窗口的寬度</p><p> public static final int HEIGHT = 175;// 窗口的高度</p><p> PanelDome p = new PanelDome();// 窗口面板的對象,使用run()方法</p><p> public static BufferedImage image;//緩沖圖像的引用<
36、/p><p> public static Vector<BufferedImage> images = new Vector<BufferedImage>();</p><p><b> static {</b></p><p><b> try {</b></p><p&g
37、t; for (int i = 0; i < 65; i++) {</p><p> images.add(ImageIO.read(PanelDome.class.getResource("img/"</p><p> + (i + 1) + ".jpg")));</p><p><b> }<
38、/b></p><p> image = images.get(0);</p><p> } catch (IOException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }&l
39、t;/b></p><p><b> // 本類的構(gòu)造器</b></p><p> public StartDisplay() {</p><p> ChuangKouXianShi();// 窗口顯示的方法</p><p><b> }</b></p><p>
40、; private void ChuangKouXianShi() {</p><p> f = new JFrame();</p><p> f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p> f.setSize(WIDTH, HEIGHT);</p><p> f
41、.setLocationRelativeTo(null);</p><p> f.setResizable(false);</p><p> f.setTitle("超市管理系統(tǒng)");</p><p> f.setUndecorated(true);</p><p><b> f.add(p);</
42、b></p><p> f.setVisible(true);</p><p><b> p.run();</b></p><p><b> }</b></p><p><b> }</b></p><p> // 面板類,加載圖片和執(zhí)行
43、動畫</p><p> class PanelDome extends JPanel implements Runnable {</p><p> public PanelDome() {</p><p><b> }</b></p><p> //關(guān)于圖像的雙緩沖方法</p><p>
44、 Image ImageBuffer = null;// 創(chuàng)建一個空的Image對象</p><p> Graphics GraImage = null;</p><p> // update方法默認(rèn)調(diào)用paint方法</p><p><b> @Override</b></p><p> public void
45、 update(Graphics g) {// 覆蓋update方法,截取默認(rèn)的調(diào)用過程</p><p> ImageBuffer = createImage(this.getWidth(), this.getHeight());// 創(chuàng)建圖片的緩沖區(qū)</p><p> GraImage = ImageBuffer.getGraphics();// 獲取圖片緩沖區(qū)的圖形上下文</
46、p><p> paint(GraImage);// 用paint方法中編寫的繪圖過程對圖形緩沖區(qū)繪圖</p><p> GraImage.dispose();// 釋放圖形上下文資源</p><p> g.drawImage(ImageBuffer, 0, 0, this);// 將圖形緩沖區(qū)繪制到屏幕上</p><p><b>
47、 }</b></p><p><b> @Override</b></p><p> public void paint(Graphics g) {</p><p> super.paint(g);</p><p> g.drawImage(StartDisplay.image, 0, 0, nul
48、l);</p><p><b> }</b></p><p><b> @Override</b></p><p> public void run() {</p><p> for (int i = 0; i < 65; i++) {</p><p><
49、b> try {</b></p><p> Thread.sleep(70);</p><p> } catch (InterruptedException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><
50、;p> StartDisplay.image = StartDisplay.images.get(i);</p><p> repaint();</p><p><b> }</b></p><p> DongZuo();// 關(guān)于動畫完成后的動作</p><p><b> }</b>
51、;</p><p> // 關(guān)于動畫完成后的動作</p><p> private void DongZuo() {</p><p> StartDisplay.f.dispose();</p><p> new Display();</p><p><b> }</b></p&g
52、t;<p><b> }</b></p><p> 為了保證程序運(yùn)行的安全,使用Vector類實現(xiàn)可增長的對象數(shù)組。并且通過靜態(tài)代碼塊來添加圖像數(shù)據(jù),可以在不創(chuàng)建對象的情況下在項目啟動的時候就初始化。</p><p> 3.3 主界面窗體功能的實現(xiàn)</p><p> 主窗體界面依然采用模塊化設(shè)計,按鈕的顯示,主界面背景和部
53、分按鈕的功能,都使用內(nèi)部類和匿名內(nèi)部類來封裝。在程序出現(xiàn)邏輯錯誤或者顯示效果出錯的時候,可以迅速找多錯誤的模塊,并且加以修改完善。而且基本上所有的變量引用都在類的最前方定義和聲明,可以方便的修改變量和引用的修飾詞與關(guān)鍵字。</p><p> 邏輯結(jié)構(gòu)如圖3.2:</p><p><b> 圖3.2</b></p><p> 功能實現(xiàn)的代碼
54、如下:</p><p> package com.show;</p><p> import java.awt.*;</p><p> import java.io.*;</p><p> import java.util.*;</p><p> import javax.imageio.ImageIO;&l
55、t;/p><p> import javax.sound.*;</p><p> import javax.swing.*;</p><p> import com.show.Crazy.TetrisC;</p><p> public class Display {</p><p> private Timer
56、 timer;</p><p> public static int grade;</p><p> public static int jiange;</p><p> public static final int WIDTH = 890;</p><p> public static final int HEIGHT = 623
57、;</p><p> private static BufferedImage background;</p><p> private static BufferedImage choose;</p><p> private static BufferedImage setback;</p><p> public static
58、final int W = 191;</p><p> public static final int H = 87;</p><p> public Tetris tetris = new Tetris();</p><p> public FirstShow firstShow = new FirstShow();</p><p>
59、 public GameSet gameSet = new GameSet();</p><p> public TetrisC tetrisC = new TetrisC();</p><p> public AnNuiPanel anNuiPanel = new AnNuiPanel();</p><p> public AnNuiCrazyPanel
60、anNuiCrazyPanel = new AnNuiCrazyPanel();</p><p> public static JFrame f = new JFrame();</p><p> public Clip clip;</p><p><b> static {</b></p><p><b>
61、; try {</b></p><p> background = ImageIO.read(FirstShow.class</p><p> .getResource("img/FirstShow.jpg"));</p><p> choose = ImageIO</p><p> .read(Fi
62、rstShow.class.getResource("img/choose.jpg"));</p><p> setback = ImageIO.read(FirstShow.class</p><p> .getResource("img/setback.jpg"));</p><p> } catch (IOExce
63、ption e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p> public Display() {</p><p><b> try {<
64、;/b></p><p> clip = AudioSystem.getClip();</p><p> } catch (LineUnavailableException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p>&l
65、t;p> Tetris.ifmusic = true;</p><p> f.setSize(WIDTH, HEIGHT);</p><p> f.setTitle("俄羅斯方塊");</p><p> f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><
66、p> f.setLocationRelativeTo(null);</p><p> f.add(firstShow);</p><p> f.setResizable(false);</p><p> f.setVisible(true);</p><p><b> }</b></p>&
67、lt;p> class AnNuiPanel extends JPanel {</p><p> private JButton back = new JButton(new ImageIcon(</p><p> GameSet.class.getResource("img/設(shè)置返回.png")));</p><p> publi
68、c AnNuiPanel() {</p><p> setBounds(0, 0, Display.WIDTH, Display.HEIGHT);</p><p> setOpaque(false);</p><p> setLayout(null);</p><p><b> AnNui();</b></
69、p><p> AnNuiPanel();</p><p><b> }</b></p><p> private void AnNuiPanel() {</p><p> back.addActionListener(new ActionListener() {</p><p><b&g
70、t; @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> clip.stop();</p><p> timer.cancel();</p><p> tetris.StopTimer();</p><
71、;p> tetris.RemoveKey();</p><p> Display.f.remove(anNuiPanel);</p><p> Display.f.remove(tetris);</p><p> Display.f.add(firstShow);</p><p> Display.f.setVisible(t
72、rue);</p><p> Display.f.repaint();</p><p><b> }</b></p><p><b> });</b></p><p> back.addMouseListener(new MouseAdapter() {</p><p&g
73、t;<b> @Override</b></p><p> public void mouseEntered(MouseEvent e) {</p><p> super.mouseEntered(e);</p><p> back.setIcon(new ImageIcon(FirstShow.class</p><
74、;p> .getResource("img/設(shè)置返回.png")));</p><p><b> }</b></p><p><b> @Override</b></p><p> public void mouseExited(MouseEvent e) {</p><
75、;p> super.mouseExited(e);</p><p> back.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/設(shè)置返回.png")));</p><p><b> }</b></p><p&g
76、t;<b> @Override</b></p><p> public void mousePressed(MouseEvent e) {</p><p> super.mousePressed(e);</p><p> back.setIcon(new ImageIcon(FirstShow.class</p><
77、;p> .getResource("img/設(shè)置返回按下.png")));</p><p><b> }</b></p><p><b> @Override</b></p><p> public void mouseReleased(MouseEvent e) {</p>
78、<p> super.mouseReleased(e);</p><p> back.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/設(shè)置返回.png")));</p><p><b> }</b></p>&
79、lt;p><b> });</b></p><p><b> }</b></p><p> private void AnNui() {</p><p> back.setBounds(30, 500, 191, 83);</p><p> back.setContentAreaFi
80、lled(false);</p><p> back.setBorderPainted(false);</p><p> this.add(back);</p><p><b> }</b></p><p><b> }</b></p><p> class AnN
81、uiCrazyPanel extends JPanel {</p><p> private JButton back = new JButton(new ImageIcon(</p><p> GameSet.class.getResource("img/設(shè)置返回.png")));</p><p> public AnNuiCrazyPa
82、nel() {</p><p> setBounds(0, 0, Display.WIDTH, Display.HEIGHT);</p><p> setOpaque(false);</p><p> setLayout(null);</p><p><b> AnNui();</b></p>&l
83、t;p> AnNuiPanel();</p><p><b> }</b></p><p> private void AnNuiPanel() {</p><p> back.addActionListener(new ActionListener() {</p><p><b> @Over
84、ride</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> clip.stop();</p><p> timer.cancel();</p><p> tetrisC.StopTimer();</p><p>
85、tetrisC.RemoveKey();</p><p> Display.f.remove(anNuiCrazyPanel);</p><p> Display.f.remove(tetrisC);</p><p> Display.f.add(firstShow);</p><p> Display.f.setVisible(tr
86、ue);</p><p> Display.f.repaint();</p><p><b> }</b></p><p><b> });</b></p><p> back.addMouseListener(new MouseAdapter() {</p><p>
87、;<b> @Override</b></p><p> public void mouseEntered(MouseEvent e) {</p><p> super.mouseEntered(e);</p><p> back.setIcon(new ImageIcon(FirstShow.class</p><
88、p> .getResource("img/設(shè)置返回.png")));</p><p><b> }</b></p><p><b> @Override</b></p><p> public void mouseExited(MouseEvent e) {</p><
89、p> super.mouseExited(e);</p><p> back.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/設(shè)置返回.png")));</p><p><b> }</b></p><p>
90、;<b> @Override</b></p><p> public void mousePressed(MouseEvent e) {</p><p> super.mousePressed(e);</p><p> back.setIcon(new ImageIcon(FirstShow.class</p><
91、p> .getResource("img/設(shè)置返回按下.png")));</p><p><b> }</b></p><p><b> @Override</b></p><p> public void mouseReleased(MouseEvent e) {</p>
92、<p> super.mouseReleased(e);</p><p> back.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/設(shè)置返回.png")));</p><p><b> }</b></p>&l
93、t;p><b> });</b></p><p><b> }</b></p><p> private void AnNui() {</p><p> back.setBounds(30, 500, 191, 83);</p><p> back.setContentAreaFil
94、led(false);</p><p> back.setBorderPainted(false);</p><p> this.add(back);</p><p><b> }</b></p><p><b> }</b></p><p> class Firs
95、tShow extends JPanel {</p><p> private JButton start;</p><p> private JButton crazy;</p><p> private JButton choose;</p><p> private JButton gameset;</p><
96、;p> private JButton exit;</p><p> public FirstShow() {</p><p> setBounds(0, 0, Display.WIDTH, Display.HEIGHT);</p><p> setOpaque(false);</p><p> setLayout(null)
97、;</p><p><b> AnNui();</b></p><p> AnNuiUse();</p><p><b> }</b></p><p> private void AnNuiUse() {</p><p> start.addMouseListene
98、r(new MouseAdapter() {</p><p><b> @Override</b></p><p> public void mouseEntered(MouseEvent e) {</p><p> super.mouseEntered(e);</p><p> start.setIcon(ne
99、w ImageIcon(FirstShow.class</p><p> .getResource("img/開始游戲.png")));</p><p><b> }</b></p><p><b> @Override</b></p><p> public void
100、mouseExited(MouseEvent e) {</p><p> super.mouseExited(e);</p><p> start.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/開始游戲.png")));</p><p&g
101、t;<b> }</b></p><p><b> @Override</b></p><p> public void mousePressed(MouseEvent e) {</p><p> super.mousePressed(e);</p><p> start.setIcon(
102、new ImageIcon(FirstShow.class</p><p> .getResource("img/開始游戲按下.png")));</p><p><b> }</b></p><p><b> @Override</b></p><p> public v
103、oid mouseReleased(MouseEvent e) {</p><p> super.mouseReleased(e);</p><p> start.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/開始游戲.png")));</p>
104、<p><b> }</b></p><p><b> });</b></p><p> crazy.addMouseListener(new MouseAdapter() {</p><p><b> @Override</b></p><p> pub
105、lic void mouseEntered(MouseEvent e) {</p><p> super.mouseEntered(e);</p><p> crazy.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/瘋狂模式.png")));</p&g
106、t;<p><b> }</b></p><p><b> @Override</b></p><p> public void mouseExited(MouseEvent e) {</p><p> super.mouseExited(e);</p><p> crazy
107、.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/瘋狂模式.png")));</p><p><b> }</b></p><p><b> @Override</b></p><p> p
108、ublic void mousePressed(MouseEvent e) {</p><p> super.mousePressed(e);</p><p> crazy.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/瘋狂模式按下.png")));<
109、/p><p><b> }</b></p><p><b> @Override</b></p><p> public void mouseReleased(MouseEvent e) {</p><p> super.mouseReleased(e);</p><p>
110、; crazy.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/瘋狂模式.png")));</p><p><b> }</b></p><p><b> });</b></p><p>
111、 choose.addMouseListener(new MouseAdapter() {</p><p><b> @Override</b></p><p> public void mouseEntered(MouseEvent e) {</p><p> super.mouseEntered(e);</p><
112、p> choose.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/選擇關(guān)卡.png")));</p><p><b> }</b></p><p><b> @Override</b></p>
113、<p> public void mouseExited(MouseEvent e) {</p><p> super.mouseExited(e);</p><p> choose.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/選擇關(guān)卡.png&quo
114、t;)));</p><p><b> }</b></p><p><b> @Override</b></p><p> public void mousePressed(MouseEvent e) {</p><p> super.mousePressed(e);</p>
115、<p> choose.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/選擇關(guān)卡按下.png")));</p><p><b> }</b></p><p><b> @Override</b></
116、p><p> public void mouseReleased(MouseEvent e) {</p><p> super.mouseReleased(e);</p><p> choose.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/選擇
117、關(guān)卡.png")));</p><p><b> }</b></p><p><b> });</b></p><p> gameset.addMouseListener(new MouseAdapter() {</p><p><b> @Override</b&
118、gt;</p><p> public void mouseEntered(MouseEvent e) {</p><p> super.mouseEntered(e);</p><p> gameset.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("
119、;img/游戲設(shè)置.png")));</p><p><b> }</b></p><p><b> @Override</b></p><p> public void mouseExited(MouseEvent e) {</p><p> super.mouseExited(
120、e);</p><p> gameset.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/游戲設(shè)置.png")));</p><p><b> }</b></p><p><b> @Override&
121、lt;/b></p><p> public void mousePressed(MouseEvent e) {</p><p> super.mousePressed(e);</p><p> gameset.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource
122、("img/游戲設(shè)置按下.png")));</p><p><b> }</b></p><p><b> @Override</b></p><p> public void mouseReleased(MouseEvent e) {</p><p> super.mo
123、useReleased(e);</p><p> gameset.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/游戲設(shè)置.png")));</p><p><b> }</b></p><p><b>
124、 });</b></p><p> exit.addMouseListener(new MouseAdapter() {</p><p><b> @Override</b></p><p> public void mouseEntered(MouseEvent e) {</p><p> sup
125、er.mouseEntered(e);</p><p> exit.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/退出游戲.png")));</p><p><b> }</b></p><p><b>
126、; @Override</b></p><p> public void mouseExited(MouseEvent e) {</p><p> super.mouseExited(e);</p><p> exit.setIcon(new ImageIcon(FirstShow.class</p><p> .get
127、Resource("img/退出游戲.png")));</p><p><b> }</b></p><p><b> @Override</b></p><p> public void mousePressed(MouseEvent e) {</p><p> sup
128、er.mousePressed(e);</p><p> exit.setIcon(new ImageIcon(FirstShow.class</p><p> .getResource("img/退出游戲按下.png")));</p><p><b> }</b></p><p><b&
129、gt; @Override</b></p><p> public void mouseReleased(MouseEvent e) {</p><p> super.mouseReleased(e);</p><p> exit.setIcon(new ImageIcon(FirstShow.class</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 俄羅斯方塊
- 《c++俄羅斯方塊》課程設(shè)計--俄羅斯方塊
- 俄羅斯方塊畢業(yè)論文
- 俄羅斯方塊項目
- java俄羅斯方塊畢業(yè)論文
- 畢業(yè)論文----java俄羅斯方塊
- 畢業(yè)論文-java俄羅斯方塊
- 俄羅斯方塊游戲畢業(yè)論文
- 俄羅斯方塊課程設(shè)計論文
- 俄羅斯方塊版本2
- 俄羅斯方塊版本4
- 俄羅斯方塊游戲java畢業(yè)論文
- 俄羅斯方塊游戲開發(fā)畢業(yè)論文
- 畢業(yè)論文(java游戲俄羅斯方塊)
- 俄羅斯方塊編程思想.txt
- 課程設(shè)計---俄羅斯方塊
- 俄羅斯方塊課程設(shè)計
- 俄羅斯方塊課程設(shè)計
- 俄羅斯方塊編程思想.txt
- 任務(wù)計劃-俄羅斯方塊.docx
評論
0/150
提交評論