java贪吃蛇游戏框架搭建

java贪吃蛇游戏框根据面向对象的思想建立蛇类、食物类、周围石头类、面板类、控制中心类、监听器类、组建类。

Food.java

public class Food { //蛇是否吃到了食物方法public boolean isSnakeEatFood(){System.out.println(“蛇是否吃到了食物”);return false;} //绘制食物方法public void drawFood(){System.out.println(“绘制食物”); }}

Ground.java

public class Ground { //蛇是否吃到了石头方法public boolean isSnakeEatrRock(){System.out.println(“蛇是否吃到了石头”);return false;} //绘制周围石头方法public void drawRock(){System.out.println(“绘制周围石头”);}}

Snake.java

public class Snake {//监听private Set<SnakeListener> listeners=new HashSet<SnakeListener>();//蛇移动的方法public void move(){System.out.println(“蛇移动”); }//蛇改变方向的方法public void changeDirecion(){System.out.println(“蛇改变方向”); }//蛇吃食物的方法public void eatFood(){System.out.println(“蛇吃食物”); }//蛇是否吃到自己方法public boolean isEatBody(){System.out.println(“蛇是否吃到自己”);return false; }//绘制蛇的方法public void drawSnake(){System.out.println(“绘制蛇”); }//游戏开始后蛇不断移动的线程类class SnakeDriver implements Runnable{public void run() {while(true){move();//遍历监听组for(SnakeListener l:listeners){l.snakeMoved(Snake.this);}try { //每隔一秒钟移动一次Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}} //启动线程方法public void start(){new Thread(new SnakeDriver()).start();} //增加监听的方法 public void addSnakelistener(SnakeListener l){ if(l !=null){ this.listeners.add(l); } }}

GamePanel.javapublic class GamePanel extends JPanel{private Snake snake;private Food food;private Ground ground;//显示绘制的图像方法public void display(Snake snake,Food food,Ground ground){System.out.println(“显示绘制的图像”);this.snake=snake;this.food=food;this.ground=ground;this.repaint();}//重新显示绘制图像方法protected void paintComponent(Graphics g) {// TODO Auto-generated method stubthis.ground.drawRock();this.food.drawFood();this.snake.drawSnake();}}

SnakeListener.java 监听蛇移动接口

public interface SnakeListener { void snakeMoved(Snake snake);}

Controller.java 控制中心处理业务逻辑,处理键盘事件和实现监听接口

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;}//处理键盘事件@Overridepublic void keyPressed(KeyEvent e) {// TODO Auto-generated method stubswitch(e.getKeyCode()){case KeyEvent.VK_UP:snake.changeDirecion();break;case KeyEvent.VK_DOWN:snake.changeDirecion();break;case KeyEvent.VK_LEFT:snake.changeDirecion();break;case KeyEvent.VK_RIGHT:snake.changeDirecion();break;}}//实现监听接口public void snakeMoved(Snake snake) {// TODO Auto-generated method stubgamepanel.display(snake, food, ground);} //开始新游戏方法public void gameStart(){snake.start();}}

Game.java 组建类

public class Game {

只想到处流浪人生就像一场旅行,不必在乎目的地,

java贪吃蛇游戏框架搭建

相关文章:

你感兴趣的文章:

标签云: