snake_frame.java
来自「一个简单的的贪吃蛇代码,算法简单」· Java 代码 · 共 143 行
JAVA
143 行
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
/**
* 贪吃蛇的界面类
* @author HqkHxgHjj
*
*/
public class Snake_Frame extends JFrame{
/**
* 界面的宽度
*/
final static int SNAKE_FRAME_WIDTH = 400;
/**
* 界面的高度
*/
final static int SNAKE_FRAME_HEIGHT = 600;
/**
* 蛇身的宽度
*/
final static int SNAKE_WIDTH = 8;
/**
* 重绘的速度
*/
final static int SPEED = 200;
//画整条蛇时需要声明的变量开始
/**
* 保存蛇所有节点坐标二维数组
*/
int[][] snake = new int[200][2];
/**
* 蛇身长度变量
*/
int snake_num = 7;
//画整条蛇时需要声明的变量结束
// /**
// * 贪吃蛇的X坐标
// */
// int snake_x = 200;
// /**
// * 贪吃蛇的Y坐标
// */
// int snake_y = 80;
Snake_Frame(){
//初始化蛇坐标
init();
}
/**
* 初始化蛇的坐标
*/
public void init(){
//初始化蛇头坐标
snake[0][0] = 200;
snake[0][1] = 80;
//初始化蛇身坐标
for(int i = 1 ; i < snake_num ; i++){
snake[i][0] = snake[i - 1][0] + SNAKE_WIDTH;
snake[i][1] = snake[i - 1][1];
}
}
/**
* 刷新背景的函数
* @param g 用来刷背景的画笔
*/
public void flushScreen(Graphics g){
//改画笔颜色为背景色
g.setColor(Color.GREEN);
//刷背景
g.fillRect(0, 0,
Snake_Frame.SNAKE_FRAME_WIDTH,
Snake_Frame.SNAKE_FRAME_HEIGHT);
//改画笔颜色为前景色
g.setColor(Color.BLACK);
}
/**
* 画蛇的函数
* @param g 画蛇的画笔
*/
public void drawSnake(Graphics g){
for(int i = 0 ; i < snake_num ; i++){
g.drawRect(snake[i][0],snake[i][1],SNAKE_WIDTH,SNAKE_WIDTH);
}
}
/**
* 移动蛇的函数
*/
public void move(){
//根据前面的节点坐标改蛇身坐标
for(int i = (snake_num - 1) ; i > 0 ; i--){
snake[i][0] = snake[i - 1][0];
snake[i][1] = snake[i - 1][1];
}
//先改蛇头坐标
snake[0][0] -= SNAKE_WIDTH;
}
/**
* 休息的代码
*/
public void speed(){
try {
Thread.sleep(SPEED);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
* 界面类画完自己之后调用的方法
* @param g 画笔对象
*/
public void paint(Graphics g) {
//刷新背景开始
flushScreen(g);
//刷新背景结束
//画蛇
drawSnake(g);
//移动蛇
move();
//休息一下
speed();
//重画
this.repaint();
}
public static void main(String[] args) {
Snake_Frame f = new Snake_Frame();
f.setSize(Snake_Frame.SNAKE_FRAME_WIDTH,
Snake_Frame.SNAKE_FRAME_HEIGHT);
f.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?