⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snake_frame.java

📁 自制贪吃蛇的程序
💻 JAVA
字号:
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;

class Snake_Frame extends JFrame{
	/**
	 * 贪吃蛇界面宽度的常量
	 */
	final static int SNAKE_WIDTH = 600;
	/**
	 * 贪吃蛇界面高度的常量
	 */
	final static int SNAKE_HEIGHT = 800;
	/**
	 * 贪吃蛇蛇身宽度
	 */
	final static int SNAKE_BODY_WIDTH = 8;
	/**
	 * 保存蛇的每个蛇身节点坐标的数组
	 *   二维数组第一维代表蛇的节点个数
	 *   二维数组第二维代表蛇的X,Y坐标
	 */
	int[][] snake = new int[200][2];
	/**
	 * 代表蛇身具有的节点个数
	 */
	int snake_num = 7;
	
	/**
	 * 构造函数(初始化对象的数据的)
	 */
	Snake_Frame(){
		//初始化蛇身
		init_snake();
		
	}
	/**
	 * 初始化蛇身坐标的方法
	 */
	void init_snake(){
		//初始化头节点
		snake[0][0] = 200;//头节点X坐标初始化为200
		snake[0][1] = 80;//头节点Y坐标初始化为80
		
		//根据头节点坐标计算其它的坐标
		for(int i = 1 ; i < snake_num ; i++){
			snake[i][0] = snake[i-1][0] + SNAKE_BODY_WIDTH;
			snake[i][1] = snake[i-1][1];
		}
	}
	
	public void paint(Graphics g) {
		//把画笔改成白色
		g.setColor(Color.WHITE);
		//把背景刷成白色
		g.fillRect(0,0,SNAKE_WIDTH,SNAKE_HEIGHT);
		//把画笔改成原来的前景
		g.setColor(Color.BLACK);
		
		//移动蛇
		move();
		
		//画蛇身
		drawSnake(g);
		
		//重画
		this.repaint();
		
		//休息一下
		try {
			Thread.sleep(200);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 修改蛇身节点坐标的方法
	 */
	void move(){
		//后面的节点改为前面的节点的坐标
		for(int i = (snake_num - 1) ; i > 0 ; i = i - 1){
			snake[i][0] = snake[i - 1][0];
			snake[i][1] = snake[i - 1][1];
		}
		
		//最后修改头节点坐标
		snake[0][0] = snake[0][0] - SNAKE_BODY_WIDTH;
	}
	
	/**
	 * 画蛇身的方法
	 * @param g 画笔
	 */
	void drawSnake(Graphics g){
		for(int i = 0 ; i < snake_num ; i++){
			g.drawRect(snake[i][0], snake[i][1], 
					SNAKE_BODY_WIDTH, SNAKE_BODY_WIDTH);
		}
	}
	
	public static void main(String[] args){
		//创建一个窗体对象(窗体类,SUN公司已经定义好)
		Snake_Frame f = new Snake_Frame();
		
		
		//调用创建的窗体对象的设置窗体大小的方法
		f.setSize(SNAKE_WIDTH,SNAKE_HEIGHT);
		//调用创建的窗体对象的设置窗体显示还是隐藏的方法
		f.setVisible(true);
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -