资源简介
适合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
- 上一篇:项目源码java项目TT商城
- 下一篇:Android简单的计时器源码
相关资源
- 项目源码java项目TT商城
- 日历记事本 java课程设计
- Java实现信息安全技术 密钥分配
- 点阵字库在JAVA中的实现源码
- 基于java实现中国象棋小游戏升级版
- 基于java爬取网络图片并且保存到本地
- Java基础视频传智播客刘意
- LIBSVM工具包可以在weka中使用并被JAV
- 浪潮培训考试大全Java方向试题
- 学生成绩管理系统实验报告内含JAVA程
- java多线程代码demo
- Session-JavaWeb专题
- Java封装的操作MySql数据库框架
- Java 调用Http Rest接口 说明2
- mongo-2.8.0.jar mongoDB 操作JAVA
- javaQQ聊天室+SocketTCP
- java 异常总结
- 宿舍管理系统登录界面
- java秒杀程序(附带数据库-mysql)
- 电梯调度JAVA版1
- 使用jsp+servlet+MVC 开发的简易论坛
- Java圆形电子时钟源代码
- java5层电梯控制
- 网上花店Java源代码
- java点菜系统源码
- http客户端java程序
- java基于udp的聊天服务端
- Apriori算法java实现,解释也很详细
- javaweb登录功能实现,eclipse开发工具,
- java 动态获取数据库信息生成word(含
评论
共有 条评论