Java贪吃蛇,粘贴应该就能运行,不过要java环境就是了。
做这个项目的时候天天挂着浏览器,查了不少资料,甚至直接cv工程师上线,下面是一个比我做得好的,我也是一大半都从那抄来,不过,说全抄不会真信吧,如果真新,那就是我的注释不够详细了。。。
Java实例代码实现一个简单的贪吃蛇小游戏 | w3c笔记 (w3cschool.cn)
package game;//包名,包名出错会报错
import java.awt.Color;//颜色
import java.awt.Font;//后面设置游戏界面绘制文字字体用的
import java.awt.Graphics;//绘制游戏界面用的
import java.awt.event.KeyEvent;//按键事件
import java.awt.event.KeyListener;//键盘监听,贪吃蛇项目需要监听玩家按下的方向键
import javax.swing.JFrame;//窗口控件,窗口里可以放置组件
import javax.swing.JPanel;//组件,用于充当绘制游戏界面的画板
import java.util.Random;//随机数
import java.util.Timer;//定时用的
import java.util.TimerTask;//定时任务类
public class Demo extends JPanel implements KeyListener {// 用java语言翻译成汉语就是:Demo类继承了JPanel并实现了KeyListener接口
/**
*
*/
private static final long serialVersionUID = 1L;// 不知道干啥的反正没加的时候编辑器就提醒加,加不加却都能运行
// 以下都是全局变量与局部方法内定义的变量不同,全局变量可以在类中的任意方法中被调用,但局部变量不可以
public int snakeX[] = new int[100];// 新建一个数组,用于存储蛇的每一节身体在x轴上的坐标,最多100个
public int snakeY[] = new int[100];// y轴坐标,同上
public int length;// 蛇有长度,用一个整数变量存储这个长度,后续蛇吃到食物这个长度会增加
public String direction;// 蛇走的时候有方向,所以用一个全局变量储存
public int food[] = new int[2];// 食物只有一个,所以要记录食物的坐标只需要两个整数变量,干脆一个长度为2的数组(food[0]是x坐标,food[1]是y坐标)
public boolean isStart;// 是否开始游戏,按空格键开始
public boolean isFail;// 你输了吗,我怎么可能会输呢,是游戏bug了
public int score;// 游戏得分,现在给它赋值多少,你就能以多少分起步了,作弊模式,开启
Random r = new Random();//食物的出现是随机的所以需要生成随机数,Random里有一个在给定范围内生成整数的方法,调用方法:对象.nextInt();前提是要实例化Random类为对象
// 下面的Demo方法和类名重合,并且不符合构成方法头必要的三个条件(1.访问权限,例如public公开的或者private私有的 2.返回值类型例如String,表示返回的值是字符串形的,void表示没有返回值 3.方法名)
public Demo() {// 所以这不是普通