日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
手把手帶你用Java打造一款對(duì)對(duì)碰游戲之一

 一、項(xiàng)目背景

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、六盤水網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、購(gòu)物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為六盤水等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,智能手機(jī)、智能平板的興起和不斷的普及,我國(guó)移動(dòng)游戲行業(yè)迅速發(fā)展,在游戲產(chǎn)業(yè)中占據(jù)舉足輕重的地位。對(duì)對(duì)碰游戲是一款經(jīng)典的消除類游戲,玩家只要點(diǎn)擊圖案來(lái)使圖案之間互換位置,連成3個(gè)或3個(gè)以上圖案來(lái)消除,得到相應(yīng)的分?jǐn)?shù)。

二、項(xiàng)目目標(biāo)

設(shè)計(jì)一款基于JAVA的游戲,顯示64 (8*8 )個(gè)動(dòng)物圖片,游戲開始時(shí),進(jìn)入100s倒數(shù),用戶點(diǎn)擊相應(yīng)的動(dòng)物圖片,如果有三個(gè)或以上相同,則成功消除,并每個(gè)得10分。

三、游戲項(xiàng)目設(shè)定

1.交換:玩家選擇兩個(gè)橫排或豎排相鄰的動(dòng)物頭像進(jìn)行位置交換,如果位置交換成功則消去動(dòng)物頭像,否則不能位置交換。

2.消去:玩家選擇兩個(gè)橫排或豎排相鄰的動(dòng)物頭像進(jìn)行位置交換,互換后如果橫排或豎排s上有超過(guò)3個(gè)相同的動(dòng)物頭像,則消去這幾個(gè)相同的動(dòng)物頭像,消去動(dòng)物頭像后的空格由上面的動(dòng)物頭像掉下來(lái)補(bǔ)齊,每次消去動(dòng)物頭像,玩家可以獲得相應(yīng)的分?jǐn)?shù)。

3.連鎖:玩家消去動(dòng)物頭像后,上面的動(dòng)物頭像掉下來(lái)補(bǔ)齊,如果這時(shí)游戲池里有連續(xù)相同的3個(gè)或3個(gè)以上動(dòng)物頭像,則可以消去這些動(dòng)物頭像。消去后的空格由上面的動(dòng)物頭像掉下來(lái)補(bǔ)齊,繼續(xù)觸發(fā)連鎖,直到?jīng)]有連鎖條件為止。

四、項(xiàng)目實(shí)施

使用eclipse軟件開發(fā),先上效果圖,如下圖所示??梢钥吹皆诮缑嫔嫌锌梢杂虚_始游戲按鈕、分?jǐn)?shù)、時(shí)間進(jìn)度條、退出游戲的功能。

接下來(lái),小編帶大家進(jìn)行具體的實(shí)現(xiàn),具體的實(shí)現(xiàn)步驟如下。

(一)首先實(shí)現(xiàn)窗體界面

1.代碼如下所示

 
 
 
 
  1. public static void main(String[] args) { 
  2. // TODO Auto-generated method stub 
  3.     DuiDuiPeng  d = new DuiDuiPeng(); 
  4.     d.setTitle("對(duì)對(duì)碰游戲"); 
  5.     d.setSize(700, 550); 
  6.     d.setVisible(true); 
  7.     d.setResizable(false); 
  8. d.setLocationRelativeTo(null); 

2.使用new關(guān)鍵字創(chuàng)建DuiDuiPeng類

setTitle表示設(shè)置界面的標(biāo)題;

setSize(寬,高)表示窗體大小;

setVisible(true或false)表示窗體是否可見(jiàn);

setResizable(true或false)表示窗體是否可以由用戶調(diào)整大小;

setLocationRelativeTo()表示設(shè)置窗口相對(duì)于指定組件的位置。

效果圖如下所示:

(二)添加開始按鈕、分?jǐn)?shù)、時(shí)間、退出按鈕

1.創(chuàng)建JFrame實(shí)例、JPanel面板,然后把面板添加到JFrame中。

2.創(chuàng)建開始按鈕(JButton)、分?jǐn)?shù)標(biāo)簽(JLabel)、文本框(JTextField)、進(jìn)度條(JProgressBar)、退出按鈕(JButton)。

3.進(jìn)度條(JProgressBar)是一種以可視化形式顯示某些任務(wù)進(jìn)度的組件。進(jìn)度條可顯示此百分比的文本表示形式。

4.進(jìn)度條常用方法:

getMaximum() 方法返回進(jìn)度條最大值;

getMinimum() 方法返回進(jìn)度條最小值 ;

getPercentComplete() 返回進(jìn)度條的完成百分比;

getString() 方法返回當(dāng)前進(jìn)度的 String 表示形式;

getValue() 方式返回進(jìn)度條的當(dāng)前 value;

setBorderPainted(boolean b) 設(shè)置 borderPainted 屬性,如果進(jìn)度條應(yīng)該繪制其邊框,則此屬性為 true;

setIndeterminate(boolean newValue) 設(shè)置進(jìn)度條的 indeterminate 屬性,該屬性確定進(jìn)度條處于確定模式中還 是處于不確定模式中;

setMaximum(int a) 設(shè)置進(jìn)度條的最大值為 a;

setMinimum(int a) 設(shè)置進(jìn)度條的最小值為 a;

setOrientation(int newOrientation) 設(shè)置進(jìn)度條的方向?yàn)?newOrientation;

setString(String s) 設(shè)置進(jìn)度字符串的值;

setStringPainted(boolean b) 設(shè)置 stringPainted 屬性的值,該屬性確定進(jìn)度條是否應(yīng)該顯示進(jìn)度字符串;

setValue(int a) 設(shè)置進(jìn)度條的當(dāng)前值為 a;

代碼如下所示:

 
 
 
 
  1. public class DuiDuiPeng extends JFrame { 
  2. private JPanel panel01 = new JPanel(); 
  3. private JButton btn_start = new JButton("開始游戲"); 
  4. private JLabel label01 = new JLabel("分?jǐn)?shù)"); 
  5. private JTextField text_score = new JTextField(10); 
  6. private JLabel label02 = new JLabel("時(shí)間"); 
  7. private JProgressBar progress = new JProgressBar(); 
  8. private JButton btn_exit = new JButton("退出"); 

(三)添加8*8動(dòng)物矩陣

1.準(zhǔn)備好7種動(dòng)物圖片;

效果圖如下圖:

2.開始添加8*8動(dòng)物矩陣JPanel、JButton、ImageIcon等,添加DuiDuiPeng類的成員變量。

代碼如下所示:

 
 
 
 
  1. private JPanel panel02 = new JPanel(); 
  2. private JButton button[][] = new JButton[8][8]; 
  3. private int animal[][] = new int[8][8];//0貓 1牛 2雞 3狐貍 4青蛙 5猴子 6熊貓 
  4. private ImageIcon icon[] = new ImageIcon[]{ 
  5. new ImageIcon("image//cat.png"), 
  6. new ImageIcon("image//cattle.png"), 
  7. new ImageIcon("image//chicken.png"), 
  8. new ImageIcon("image//fox.png"), 
  9. new ImageIcon("image//frog.png"), 
  10. new ImageIcon("image//monkey.png"), 
  11. new ImageIcon("image//panda.png"), 
  12.  
  13. };//7種動(dòng)物的圖片 

(四)顯示開始按鈕、分?jǐn)?shù)標(biāo)簽、文本框、進(jìn)度條、退出按鈕

 
 
 
 
  1. text_score.setText("0"); 
  2. text_score.setEditable(false); 
  3. progress.setMinimum(0);//進(jìn)度值最小為0 
  4. progress.setMaximum(100);//進(jìn)度值最大為100 
  5. progress.setStringPainted(true);//設(shè)置 stringPainted 屬性的值,該屬性確定進(jìn)度條是否應(yīng)該顯示進(jìn)度字符串 
  6.  
  7. panel01.add(btn_start); 
  8. panel01.add(label01); 
  9. panel01.add(text_score); 
  10. panel01.add(label02); 
  11. panel01.add(progress); 
  12. panel01.add(btn_exit); 
  13. this.setLayout(new BorderLayout()); 
  14. this.add(panel01,BorderLayout.NORTH); 

效果如下圖所示

(五)顯示8X8動(dòng)物矩陣,完成界面設(shè)計(jì)

可以看到游戲池種第一個(gè)和第二表格的顏色不一樣,第三又和第一個(gè)顏色是一樣的,我們可以給一個(gè)判斷條件,如果表格為奇數(shù)的顏色是橙色,如果表格為偶數(shù)的顏色是黃色,最后我們?cè)O(shè)置它的背景顏色為橙色。

效果圖如下所示

代碼如下圖所示

 
 
 
 
  1. panel02.setLayout(new GridLayout(8,8,2,2)); 
  2. for(int i=0;i<8;i++){//行 
  3.         for(int j=0;j<8;j++){//列 
  4.             int temp = (int)(Math.random()*7);//0-6 
  5.             button[i][j] = new JButton(icon[temp]); 
  6.             if((i+j)%2==0){ 
  7.                 button[i][j].setBackground(new Color(255,222,173)); 
  8.             }else{ 
  9.                 button[i][j].setBackground(new Color(255,246,143)); 
  10.             } 
  11.             animal[i][j]=temp; 
  12.             panel02.add(button[i][j]); 
  13.             button[i][j].setEnabled(false); 
  14.  
  15.             button[i][j].addActionListener(my); 
  16.         } 
  17. this.add(panel02,BorderLayout.CENTER); 

setOpaque設(shè)置控件是否透明的。true表示不透明,false表示透明。

 
 
 
 
  1. panel01.setOpaque(false); 
  2. panel02.setOpaque(false); 
  3. this.getContentPane().setBackground(Color.orange); 

以上的內(nèi)容主要完成游戲的界面設(shè)計(jì),實(shí)現(xiàn)的功能請(qǐng)看第二篇《Java實(shí)現(xiàn)對(duì)對(duì)碰游戲(下篇)》。

五、總結(jié)

1.本文主要介紹了JLabel、JButton、JPanel、ImageIcon、JTextField、JProgressBar等組件的基本使用,介紹了進(jìn)度條(JProgressBar)常用的方法。

2.使用二維數(shù)組實(shí)現(xiàn)88動(dòng)物矩陣,88動(dòng)物矩陣第一個(gè)單元格和第二個(gè)單元格的顏色不一樣,第三個(gè)單元格和第一個(gè)單元格顏色一樣。用奇數(shù)單元格設(shè)置為橙色,偶數(shù)單元格設(shè)置為黃色。

3.本文是一個(gè)小游戲案例,代碼相對(duì)來(lái)說(shuō)并不復(fù)雜,希望可以幫助到你。

本文轉(zhuǎn)載自微信公眾號(hào)「 Java進(jìn)階學(xué)習(xí)交流  」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系 Java進(jìn)階學(xué)習(xí)交流  公眾號(hào)。


文章名稱:手把手帶你用Java打造一款對(duì)對(duì)碰游戲之一
URL分享:http://www.dlmjj.cn/article/dhppisg.html