贪吃蛇Java课程设计 下载本文

import java.awt.*; import java.io.*; import java.util.*;

import javax.swing.JFrame;

public class GameFrame extends JFrame {

public GamePanel panel = new GamePanel(this); public Snake xiaoqing = new Snake(this); public Control ct = new Control(this); public Food food = new Food(this);

public LinkedList rocks = new LinkedList(); public GameFrame(){ }

public void intiRocks(){ }

public void inti() { }

private Snake snake;

Properties dbconfig = new Properties(); static FileInputStream file;

public String msg() throws IOException{ }

private class SnakeDriver implements Runnable { @Override

public void run() { }

public static void main(String[] args) { GameFrame gf = new GameFrame(); } }

4

3.2.2贪吃蛇蛇身及运动设置

贪吃蛇的蛇身设置是整个游戏设计的关键。它的基本思路是:移动

的时候去掉蛇尾,将其添加在蛇头(去尾加头),吃到食物时将之前去掉的尾部在重新加上,完成蛇头吃食物的处理操作,显示蛇头。具体效果如图2-2所示。

而蛇运动的四个方向,则通过按键来控制。蛇吃到一个食物,就加分。每次食物出现的位置不能在蛇身上也不能在屏幕外面,如果蛇在运动的过程中撞到自己或者撞墙,则游戏结束,具体效果如图2-3所示。

图2-2游戏运行中的效果

5

图2-3就是蛇撞到墙之后,提示游戏结束。

附加代码: 蛇的移动

public void move() { //蛇的移动方法

if(gf.panel.isPause()) return; //判断游戏是否暂停 if(!life) return; //判断游戏是否GAME OVER tail = bady.getLast(); //记录下它尾节点 bady.removeLast(); //删除它的尾节点

int x = bady.getFirst().x; //获取它头结点的X int y = bady.getFirst().y; //获取它头节点的Y if(key + KeyBuffer != 0){ }

switch(key){ //就算其头结点坐标 }

//防止蛇跑出屏幕

2

if(x < 0) {

x = Constant.COMPANY_WIDTH - 1 ; }

if(x > Constant.COMPANY_WIDTH - 1) { x = 0; }

if(y < 0) {

y = Constant.COMPANY_HEIGHT - 1 ; }

if(y > Constant.COMPANY_HEIGHT - 1) { y = 0; }

bady.addFirst(new Point(x,y)); //在其头部加上新的X,Y坐标 }

蛇吃食物,撞墙,撞身体

public boolean eatFood(Food food) { }

public boolean eatRock(Rocks rock){ }

public boolean eatBody(){ }

3.2.3游戏控制设置

游戏控制设置就是控制游戏的暂停与开始及重新游戏。W、S、A、D或

上、下、左、右键控制蛇的上、下、左、右移动,设置enter按键来暂停或开始进行中的游戏,设置F1来重新开始游戏。

3