注:该贪吃蛇模型是跟着狂神—秦老师的教学视频敲的,想听课程可直接去b站听老师的课,讲的很清楚!
StartGame类
import javax.swing.*;
public class StartGame {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setBounds(10, 10, 900, 720);
frame.setResizable(false);//窗口大小不变
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//正常游戏界面都应该在面上!
frame.add(new GamePanel());
frame.setVisible(true);
}
}
GamePanel类
import com.tao.Data;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
//游戏的面板
public class GamePanel extends JPanel implements KeyListener, ActionListener {
//定义蛇的数据结构
int length;//蛇的长度
int[] snakeX=new int[600];//蛇的x坐标
int[] snakeY=new int[500];//蛇的y坐标
String fx;
boolean isStart;//游戏当前的状态:开始,停止
boolean isFail;
int score;//成绩
//食物的坐标
int foodx;
int foody;
Random random=new Random();
//定时器 以ms为单位
Timer timer=new Timer(100,this);//100毫秒执行一次!
//构造器
public GamePanel() {
init();
//获得焦点和键盘事件
this.setFocusable(true);//获得焦点事件
this.addKeyListener(this);//获得键盘监听事件
timer.start();//游戏一开始定时器就启动
}
//初始化
public void init(){
length=3;
snakeX[0]=