java游戲開發(fā)--連連看3-將算法與代碼結(jié)合_第1頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、.將算法與界面結(jié)合起來用布局和按鈕來實(shí)現(xiàn)算法的界面 上面已經(jīng)說完了算法,相信大家也迫不及待的想進(jìn)入界面的設(shè)計(jì)了吧,好了,多的不說,我們開始吧。 既然我們的算法是基于二維數(shù)組的,那么我們也應(yīng)該在界面使用一個(gè)能反映二維數(shù)組的控件。這里有兩種方式,一種使用表格來實(shí)現(xiàn),第二種是使用布局來實(shí)現(xiàn)。 相對(duì)而言,用表格來實(shí)現(xiàn)二維數(shù)組要簡(jiǎn)單一些, JAVA 提供的布局方式可能是令大家都不習(xí)慣的一種界面設(shè)計(jì)方式,不過,在這里,我還是選用了布局的方式來實(shí)現(xiàn)界面,因?yàn)椋?dāng)你設(shè)計(jì)完界面后,你會(huì)發(fā)現(xiàn) JAVA 的布局也是有它的優(yōu)點(diǎn)的。JAVA 提供了 BorderLyout 、 GridLayout 、 FlowLayo

2、ut 等布局,而在這些布局中, GridLayout 布局是最接近于表格方式的一種布局,同時(shí),我們使用 utton 控件來作為數(shù)組中的元素。/MapUI.java public class MapUI extends JPanel implements ActionListener utton dots = new uttonSetting.ROW * Setting.COLUMN; public MapUI() / 設(shè)計(jì)布局 GridLayout gridLayout = new GridLayout(); gridLayout.setRows(Setting.ROW); gridLayou

3、t.setColumns(Setting.COLUMN); gridLayout.setHgap(2); / 設(shè)置縱向間距 gridLayout.setVgap(2); / 設(shè)置橫向間距 this.setLayout(gridLayout); / 放置按鈕 for (int row = 0; row < Setting.ROW; row+) for (int col = 0; col < Setting.COLUMN; col+) int index = row * Setting.COLUMN + col; dotsindex.addActionListener(this); /

4、 添加事件處理 this.add(dotsindex); 當(dāng)然了,上面的代碼太簡(jiǎn)單了,簡(jiǎn)單得連一些基本的事情也沒有做,比如說在按鈕上加上文字,并且,要保證每個(gè)按鈕上的文字與算法中二維數(shù)組中相對(duì)位置的元素的值相對(duì)應(yīng)?,F(xiàn)在我們運(yùn)行一下看看,怎么樣,像不像.界面出來了,那我們?cè)趺粗烙脩酎c(diǎn)擊的是哪個(gè)按鈕呢。其實(shí)這也不難的,我們?cè)诜胖冒粹o的時(shí)候,對(duì)每個(gè)按鈕的 mandName 屬性賦一個(gè)值,通過這個(gè)值,我們就可以知道該按鈕對(duì)應(yīng)二維數(shù)組中元素的具體位置了,現(xiàn)在,我們按放置按鈕的代碼改動(dòng)一下:/ 放置按鈕 for (int row = 0; row < Setting.ROW; row+) for

5、(int col = 0; col < Setting.COLUMN; col+) int index = row * Setting.COLUMN + col; dots.setActionmand(" + i); 在按鈕的事情處理中,再把這個(gè)值取出來,并且還原到坐標(biāo)上, public void actionPerformed(ActionEvent e) utton button = (utton) e.getSource(); int offset = Integer.parseInt(button.getActionmand(); int row, col; row =

6、 Math.round(offset / Setting.COLUMN); col = offset - row * Setting.COLUMN; 怎么樣,是不是如此簡(jiǎn)單.已經(jīng)知道了用戶是按的哪個(gè)按鈕,并且知道了該按鈕對(duì)應(yīng)的二維數(shù)組中的值,剩下的事情就不用我說了吧:) 現(xiàn)在,我們需要用 utton 控件來將算法中二維數(shù)組中每個(gè)元素的值區(qū)別出來,最簡(jiǎn)單的就是用不同的數(shù)字來顯示,有了這個(gè)功能后,我們就可以很方便的實(shí)現(xiàn)界面與算法的同步了。/ 根據(jù)數(shù)組來繪置畫面 private void paint() for (int row = 0; row < Setting.ROW; row+) fo

7、r (int col = 0; col < Setting.COLUMN; col+) int index = row * Setting.COLUMN + col; if (map.getMap()rowcol > 0) dotsindex.setIcon(Kyodai.BlocksIconmap.getMap()rowcol - 1); dotsindex.setEnabled(true); else dotsindex.setIcon(null); dotsindex.setText(“” + index); 設(shè)計(jì)用戶界面 好了,到現(xiàn)在為止,不管怎么說,我們已經(jīng)大體上實(shí)現(xiàn)了與

8、算法有關(guān)的界面,雖然還很難看,但總算是有了個(gè)界面,也算是對(duì)自己的一點(diǎn)安慰吧。 現(xiàn)在,我們要設(shè)計(jì)用戶的界面了,用戶的界面也無需讓我們多考慮了,既然已經(jīng)有現(xiàn)成的,我們就抄吧(其實(shí)是我天生缺乏美術(shù)天份,與其自己做得難看,還不如抄抄別人現(xiàn)成的)。這部分沒有太多要說的,我就用圖來說明一下吧。同樣,整個(gè)界面也是使用了 JAVA 提供的布局方式,這里使用的是 BorderLayout 布局,我們需要注意的就是先算計(jì)好每個(gè)區(qū)域所需要尺寸的大小,并且使用 JPanel 的 setPreferredSize 方法來固定好大小,同時(shí),根據(jù)自己的需要,添加命令按鈕如開始、退出等。為用戶界面添加功能 用戶界面的設(shè)計(jì)已經(jīng)出來了,但是相應(yīng)的功能我們還沒有實(shí)現(xiàn),現(xiàn)在,讓我們來一起實(shí)現(xiàn)這些功能吧。 同樣,我們還是參照一下別人游戲中有哪些功能,并且根據(jù)自己的需要來進(jìn)行選擇,在這里,我們只需要提供開始游戲、刷新地圖、提示、炸彈等功能就好了(其它的暫時(shí)可以不管,以后需要的時(shí)候可以再添加)。開始游戲: 當(dāng)用戶開始游戲的時(shí)候,我們需要將地圖初始化并且顯示出游戲界面 。 刷新地圖: 此功能我們?cè)谒惴ú糠种?/p>

溫馨提示

  • 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)論