• 大小: 14KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-17
  • 语言: Java
  • 标签: java  贪吃蛇  

资源简介

适合java初学者学习用、本文件采用内部类、只有一个文件,代码实现了关卡、分数等 附有详细注释,解压后导入eclipse即可打开(最好是1.8的jdk,过低版本可能会报错)。

资源截图

代码片段和文件信息

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; //定义行数。
public static final int COLS = 30; //定义列数。
public static final int BLOCK_SIZE = 15; //定义格子长宽。
public double fenshu = 0; //定义分数。
public double dengji = 1; //定义等级。
public int i ii = 1; //定义各种中间参数,用于计算分数和关切等级。
public boolean judge = true; //定义布尔类型、判断蛇是否死亡、即生命值。
public Random rand = new Random(); //创建一个随机数对象。
public Snake snake = new Snake(); //创建一个蛇对象。
public Food food = new Food(); //创建食物对象。
public Poisonousfood pfood = new Poisonousfood(); //创建毒物对象。

public DisplayPanel() {
this.addKeyListener(new key());
this.settitle(“学习用贪吃蛇“);
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 { //游戏显示面板类。

public Activepanel() {
new Thread(new qd()).start(); //启动线程。
}

public void paintComponent(Graphics g) { //画布  用于画网格、分数、关卡、蛇、食物、毒物。
super.paintComponent(g);
setBackground(Color.WHITE);

g.setColor(Color.GRAY); //画分数和关卡。
g.setFont(new Font(“宋体“ Font.BOLD 100));
String fs = String.valueOf(fenshu);
g.drawString(fs 120 150);
String dj = “第“ + String.valueOf(i) + “关“;
g.drawString(dj 90 265);

g.setColor(Color.BLACK); //画网格。
for (int i = 1; i < ROWS; i++) {
g.drawLine(0 i * BLOCK_SIZE COLS * BLOCK_SIZE BLOCK_SIZE * i);
}
for (int i = 1; i < ROWS; i++) {
g.drawLine(i * BLOCK_SIZE 0 BLOCK_SIZE * i ROWS * BLOCK_SIZE);
}
pfood.drawme(g); //画毒物。
food.drawme(g); //画食物
snake.drawme(g); //画蛇。
}

public class qd implements Runnable { //线程
public void run() {
while (judge) {
judge = snake.death(); //每次刷新调用蛇死亡的方法,判断蛇是否死亡。
if (fenshu > 10) { //计算分数、设定10分为一关。
dengji = Math.ceil(fenshu / 10);
}
i = (int) dengji;
if (i != ii) { //判断关卡是否变动、变动着刷新,进入下一关。
ii = i;
snake.initial();
food.Refresh();
pfood.Refresh(snake food);
}
repaint();
try {
Thread.sleep(200 / i);
} catch (InterruptedException e) {
e.printStackTrace();
}
}

}

}

}

public class Snake { //蛇类。
public String newfx = “r“;
public String oldfx = “r“;
public linkedList body = new linkedList

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2018-05-23 20:45  简单贪吃蛇\.classpath

     文件        391  2018-06-16 16:40  简单贪吃蛇\.project

     文件        598  2018-05-23 20:45  简单贪吃蛇\.settings\org.eclipse.jdt.core.prefs

     文件       1860  2018-06-16 17:02  简单贪吃蛇\bin\贪吃蛇\DisplayPanel$Activepanel$qd.class

     文件       2367  2018-06-16 17:02  简单贪吃蛇\bin\贪吃蛇\DisplayPanel$Activepanel.class

     文件       1515  2018-06-16 17:02  简单贪吃蛇\bin\贪吃蛇\DisplayPanel$Food.class

     文件        721  2018-06-16 17:02  简单贪吃蛇\bin\贪吃蛇\DisplayPanel$key.class

     文件       2375  2018-06-16 17:02  简单贪吃蛇\bin\贪吃蛇\DisplayPanel$Poisonousfood.class

     文件       4622  2018-06-16 17:02  简单贪吃蛇\bin\贪吃蛇\DisplayPanel$Snake.class

     文件       2055  2018-06-16 17:02  简单贪吃蛇\bin\贪吃蛇\DisplayPanel.class

     文件       8574  2018-06-16 17:02  简单贪吃蛇\src\贪吃蛇\DisplayPanel.java

     目录          0  2018-06-16 17:03  简单贪吃蛇\bin\贪吃蛇

     目录          0  2018-06-16 17:03  简单贪吃蛇\src\贪吃蛇

     目录          0  2018-06-16 17:03  简单贪吃蛇\.settings

     目录          0  2018-06-16 17:03  简单贪吃蛇\bin

     目录          0  2018-06-16 17:03  简单贪吃蛇\src

     目录          0  2018-06-16 17:03  简单贪吃蛇

----------- ---------  ---------- -----  ----

                25379                    17


评论

共有 条评论