資源簡(jiǎn)介
適合java初學(xué)者學(xué)習(xí)用、本文件采用內(nèi)部類(lèi)、只有一個(gè)文件,代碼實(shí)現(xiàn)了關(guān)卡、分?jǐn)?shù)等 附有詳細(xì)注釋,解壓后導(dǎo)入eclipse即可打開(kāi)(最好是1.8的jdk,過(guò)低版本可能會(huì)報(bào)錯(cuò))。

代碼片段和文件信息
package?貪吃蛇;
import?java.awt.Color;
import?java.awt.Font;
import?java.awt.Graphics;
import?java.awt.Point;
import?java.awt.Toolkit;
import?java.awt.event.KeyAdapter;
import?java.awt.event.KeyEvent;
import?java.util.linkedList;
import?java.util.Random;
import?javax.swing.Jframe;
import?javax.swing.JOptionPane;
import?javax.swing.JPanel;
public?class?DisplayPanel?extends?Jframe?{
public?static?final?int?ROWS?=?30; //定義行數(shù)。
public?static?final?int?COLS?=?30; //定義列數(shù)。
public?static?final?int?BLOCK_SIZE?=?15; //定義格子長(zhǎng)寬。
public?double?fenshu?=?0; //定義分?jǐn)?shù)。
public?double?dengji?=?1; //定義等級(jí)。
public?int?i?ii?=?1; //定義各種中間參數(shù),用于計(jì)算分?jǐn)?shù)和關(guān)切等級(jí)。
public?boolean?judge?=?true; //定義布爾類(lèi)型、判斷蛇是否死亡、即生命值。
public?Random?rand?=?new?Random(); //創(chuàng)建一個(gè)隨機(jī)數(shù)對(duì)象。
public?Snake?snake?=?new?Snake(); //創(chuàng)建一個(gè)蛇對(duì)象。
public?Food?food?=?new?Food(); //創(chuàng)建食物對(duì)象。
public?Poisonousfood?pfood?=?new?Poisonousfood(); //創(chuàng)建毒物對(duì)象。
public?DisplayPanel()?{
this.addKeyListener(new?key());
this.settitle(“學(xué)習(xí)用貪吃蛇“);
this.add(new?Activepanel());
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(456?479);
this.setVisible(true);
this.setResizable(false);
int?width?=?Toolkit.getDefaultToolkit().getScreenSize().width; //劇中顯示方法。
int?height?=?Toolkit.getDefaultToolkit().getScreenSize().height;
this.setBounds((width?-?456)?/?2?(height?-?479)?/?2?456?479);
}
public?class?Activepanel?extends?JPanel?{ //游戲顯示面板類(lèi)。
public?Activepanel()?{
new?Thread(new?qd()).start(); //啟動(dòng)線程。
}
public?void?paintComponent(Graphics?g)?{ //畫(huà)布??用于畫(huà)網(wǎng)格、分?jǐn)?shù)、關(guān)卡、蛇、食物、毒物。
super.paintComponent(g);
setBackground(Color.WHITE);
g.setColor(Color.GRAY); //畫(huà)分?jǐn)?shù)和關(guān)卡。
g.setFont(new?Font(“宋體“?Font.BOLD?100));
String?fs?=?String.valueOf(fenshu);
g.drawString(fs?120?150);
String?dj?=?“第“?+?String.valueOf(i)?+?“關(guān)“;
g.drawString(dj?90?265);
g.setColor(Color.BLACK); //畫(huà)網(wǎng)格。
for?(int?i?=?1;?i? g.drawLine(0?i?*?BLOCK_SIZE?COLS?*?BLOCK_SIZE?BLOCK_SIZE?*?i);
}
for?(int?i?=?1;?i? g.drawLine(i?*?BLOCK_SIZE?0?BLOCK_SIZE?*?i?ROWS?*?BLOCK_SIZE);
}
pfood.drawme(g); //畫(huà)毒物。
food.drawme(g); //畫(huà)食物
snake.drawme(g); //畫(huà)蛇。
}
public?class?qd?implements?Runnable?{ //線程
public?void?run()?{
while?(judge)?{
judge?=?snake.death(); //每次刷新調(diào)用蛇死亡的方法,判斷蛇是否死亡。
if?(fenshu?>?10)?{ //計(jì)算分?jǐn)?shù)、設(shè)定10分為一關(guān)。
dengji?=?Math.ceil(fenshu?/?10);
}
i?=?(int)?dengji;
if?(i?!=?ii)?{ //判斷關(guān)卡是否變動(dòng)、變動(dòng)著刷新,進(jìn)入下一關(guān)。
ii?=?i;
snake.initial();
food.Refresh();
pfood.Refresh(snake?food);
}
repaint();
try?{
Thread.sleep(200?/?i);
}?catch?(InterruptedException?e)?{
e.printStackTrace();
}
}
}
}
}
public?class?Snake?{ //蛇類(lèi)。
public?String?newfx?=?“r“;
public?String?oldfx?=?“r“;
public?linkedList?body?=?new?linkedList
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????301??2018-05-23?20:45??簡(jiǎn)單貪吃蛇\(yùn).classpath
?????文件????????391??2018-06-16?16:40??簡(jiǎn)單貪吃蛇\(yùn).project
?????文件????????598??2018-05-23?20:45??簡(jiǎn)單貪吃蛇\(yùn).settings\org.eclipse.jdt.core.prefs
?????文件???????1860??2018-06-16?17:02??簡(jiǎn)單貪吃蛇\(yùn)bin\貪吃蛇\(yùn)DisplayPanel$Activepanel$qd.class
?????文件???????2367??2018-06-16?17:02??簡(jiǎn)單貪吃蛇\(yùn)bin\貪吃蛇\(yùn)DisplayPanel$Activepanel.class
?????文件???????1515??2018-06-16?17:02??簡(jiǎn)單貪吃蛇\(yùn)bin\貪吃蛇\(yùn)DisplayPanel$Food.class
?????文件????????721??2018-06-16?17:02??簡(jiǎn)單貪吃蛇\(yùn)bin\貪吃蛇\(yùn)DisplayPanel$key.class
?????文件???????2375??2018-06-16?17:02??簡(jiǎn)單貪吃蛇\(yùn)bin\貪吃蛇\(yùn)DisplayPanel$Poisonousfood.class
?????文件???????4622??2018-06-16?17:02??簡(jiǎn)單貪吃蛇\(yùn)bin\貪吃蛇\(yùn)DisplayPanel$Snake.class
?????文件???????2055??2018-06-16?17:02??簡(jiǎn)單貪吃蛇\(yùn)bin\貪吃蛇\(yùn)DisplayPanel.class
?????文件???????8574??2018-06-16?17:02??簡(jiǎn)單貪吃蛇\(yùn)src\貪吃蛇\(yùn)DisplayPanel.java
?????目錄??????????0??2018-06-16?17:03??簡(jiǎn)單貪吃蛇\(yùn)bin\貪吃蛇
?????目錄??????????0??2018-06-16?17:03??簡(jiǎn)單貪吃蛇\(yùn)src\貪吃蛇
?????目錄??????????0??2018-06-16?17:03??簡(jiǎn)單貪吃蛇\(yùn).settings
?????目錄??????????0??2018-06-16?17:03??簡(jiǎn)單貪吃蛇\(yùn)bin
?????目錄??????????0??2018-06-16?17:03??簡(jiǎn)單貪吃蛇\(yùn)src
?????目錄??????????0??2018-06-16?17:03??簡(jiǎn)單貪吃蛇
-----------?---------??----------?-----??----
????????????????25379????????????????????17
評(píng)論
共有 條評(píng)論