资源简介
一个由eclipse下写的贪吃蛇程序.界面还算可以,大小是1000*1000px,蛇的头部和身体可以设置颜色,可以设置背景颜色,可以设置网格线和网格线颜色,可以设置周围石块颜色,可以设置食物颜色,可以设置贪吃蛇速度,计分板功能没有写,压缩包内有预览的jar程序,里面有部分相应的注释.
代码片段和文件信息
package me.hekuan;
import java.awt.Point;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Random;
/**
* 它有两个功能: A:处理键盘的按键事件我选择选择继承一个类
* B:处理逻辑
*
*/
public class Controller extends KeyAdapter implements SnakeListener {
private Snake snake;
private Food food;
private Ground ground;
private GamePanel gamePanel;
public Controller(Snake snake Food food Ground ground GamePanel gamePanel) {
super();
this.snake = snake;
this.food = food;
this.ground = ground;
this.gamePanel = gamePanel;
}
/**
* 键盘录入
*
* 当按下空格键时开始/暂停游戏
* 方向键控制贪吃蛇移动方向
* @param e
*/
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_SPACE:
if (snake.isPause == true) {
snake.isPause = false;
System.out.println(“\n\n 贪吃蛇游戏已经开始! \n\n“);
} else {
snake.isPause = true;
System.out.println(“\n\n 贪吃蛇游戏已经暂停! \n\n“);
}
break;
case KeyEvent.VK_UP:
snake.changeDirection(Snake.UP);
break;
case KeyEvent.VK_DOWN:
snake.changeDirection(Snake.DOWN);
break;
case KeyEvent.VK_LEFT:
snake.changeDirection(Snake.LEFT);
break;
case KeyEvent.VK_RIGHT:
snake.changeDirection(Snake.RIGHT);
break;
}
}
/**
* 贪吃蛇的移动过程的判断
* 判断贪吃蛇是否吃到了食物
* 判断贪吃蛇是否吃到了围墙
* 判断贪吃蛇是否吃到了自己
* 最后让游戏面板绘图
* @param snake
*/
public void snakeMoved(Snake snake) {
if (food.isSnakeEatFood(snake)) {
snake.eatFood();
food.newFood(getPoint());
}
if (ground.isSnakeEatRock(snake)) {
snake.die();
}
if (snake.isEatBody()) {
snake.die();
}
gamePanel.display(snake food ground);
}
/**
* 开始新的游戏
* 调用了food的newFood()方法
* 调用了snake的start()方法
*/
public void newGame() {
food.newFood(getPoint());
snake.live = true;
snake.start();
gamePanel.display(snake food ground);
}
public void reNewGame() {
// snake.begin();
// newGame();
snake.init();
food.newFood(getPoint());
gamePanel.display(snake food ground);
snake.isPause = true;
snake.live = true;
}
/**
* 产生新的食物坐标并传给food
* @return new Point(x y);
*/
public static Point getPoint() {
Random random = new Random();
int x = random.nextInt(Global.WIDTH - 2) + 1;
int y = random.nextInt(Global.HEIGHT - 2) + 1;
System.out.println(“控制中心给出了食物坐标:(“ + x + “ “ + y + “)“);
return new Point(x y);
}
@Override
public void snakeEatFood() {
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 31648 2016-11-20 19:27 main.jar
目录 0 2016-11-18 18:18 Snake\
文件 301 2016-11-17 14:59 Snake\.classpath
文件 381 2016-11-16 09:29 Snake\.project
目录 0 2016-11-16 09:29 Snake\.settings\
文件 598 2016-11-16 09:29 Snake\.settings\org.eclipse.jdt.core.prefs
目录 0 2016-12-14 08:46 Snake\bin\
目录 0 2016-12-14 08:46 Snake\bin\me\
目录 0 2016-12-20 09:39 Snake\bin\me\hekuan\
文件 978 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$1.class
文件 1021 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$10.class
文件 711 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$11.class
文件 554 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$12.class
文件 978 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$2.class
文件 1015 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$3.class
文件 977 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$4.class
文件 926 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$5.class
文件 1756 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$6.class
文件 1109 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$7.class
文件 1030 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$8.class
文件 1019 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel$9.class
文件 10487 2016-12-14 08:46 Snake\bin\me\hekuan\ControlPanel.class
文件 2914 2016-12-14 08:46 Snake\bin\me\hekuan\Controller.class
文件 1953 2016-12-14 08:46 Snake\bin\me\hekuan\Food.class
文件 1727 2016-12-14 08:46 Snake\bin\me\hekuan\GamePanel.class
文件 375 2016-12-14 08:46 Snake\bin\me\hekuan\Global.class
文件 2313 2016-12-14 08:46 Snake\bin\me\hekuan\Ground.class
文件 601 2016-12-20 09:39 Snake\bin\me\hekuan\Main$1.class
文件 743 2016-12-20 09:39 Snake\bin\me\hekuan\Main$2.class
文件 1035 2016-12-20 09:39 Snake\bin\me\hekuan\Main$3.class
文件 719 2016-12-20 09:39 Snake\bin\me\hekuan\Main$4.class
............此处省略82个文件信息
相关资源
- mysql数据处理,java用户登录处理
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- javaweb网上购物系统源码(附数据库脚
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- JAVALibrary
- 微信企业号回调模式Java版
- 顺丰丰桥接口开发详细教程源码含下
- Java博客概要设计文档
- 药品进销存管理系统(论文范文_JSP
- 奖学金管理系统java+jsp+mysql
- 毕设参考——基于java酒店管理
- Java写的一个简单的字体更改程序
- java8学习教程之lambda表达式的使用方法
评论
共有 条评论