【贪吃蛇游戏】JavaSE零基础项目实战教程-上

174 阅读4分钟

「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战

今天来和大家一起学习一下JavaSE趣味贪食蛇游戏项目,在我们学习完JavaSE之后,急需要自己动手开发一些小项目来综合提升自己的编码能力,巩固所学的JavaSE知识,筑牢Java基础,如果你也跟着一步一步完成这个项目案例,我相信你的JavaSE基本功、编码能力、分析问题、解决问题的能力会有一个大提升;

适应人群: 学习完JavaSE课程的人群,想通过项目案例巩固JavaSE基础的同学;

1. 准备工作

JDK8.0

IntelliJ IDEA

2. 设计游戏图纸

实现700*900

宽度值为700像素,每个格子为25像素,共计有28个格子

高度值为900像素,每个格子为25像素,共计有36 个格子

3. 画出 7 00* 9 00像素窗口

编写具体代码如下:

image.png

运行效果如下:

image.png

4. 在窗口上添加画布

新建一个类MyPanel画布,同时继承JPanel

编写两个方法:无参构造方法和重写画组件,其中参数看作是一个画笔

方法体中编写代码:先调用父类方法做一些基本工作,然后再设置背景颜色,最后在main方法的窗口中添加画布

编写具体代码如下:

image.png

执行思路:当添加画布时,执行无参构造方法,然后再自动执行重写画组件的方法

运行效果如下:

image.png

5. 在画布上添加黑色游戏区

使用画笔填满整个区域,四个参数分别是:在画布中x坐标,在画布中y坐标,以及宽度和高度值

编写具体代码如下:

image.png

运行效果如下:

image.png

6. 放静态蛇

声明右侧头部图片

声明身体图片

添加右侧头部

添加两个身体

编写具体代码如下:

image.png

运行效果如下:

image.png

7. 定义蛇的数据结构

当游戏运行后,蛇的身体会不断变长,蛇的位置也会不断的发生改变,因此需要将蛇的长度和蛇的位置存放起来,目前使用数组完成。

具体操作步骤如下:

  • 声明一个初始值,表示蛇的初始长度为3
  • 声明蛇的x坐标和y坐标
  • 当创建对象执行无参构造方法时,完成蛇的右侧头部和身体位置初始化
  • 此时就不需要之前编写静态蛇身体的代码,通过编写循环遍历数组即可

编写具体代码如下:

image.png

image.png

运行效果如下:

image.png

8. 控制蛇头方向

蛇头可以进行上下左右移动

操作步骤:

  • 定义一个枚举方向,有上、下、左、右四个取值
  • 分别声明向上、向下和向左的三个蛇头图片
  • 声明一个枚举类型变量,标识蛇头的方向
  • 通过更改枚举方向的值,来更改蛇头的方向

编写具体代码如下:

image.png

image.png

image.png

运行效果如下:

image.png

9. 放上开始提示

在重写画组件的方法中,使用画笔就可以完成

编写具体代码如下:

image.png

运行效果如下:

image.png

10. 按空格键开始游戏

  1. 声明一个boolean类型变量isStart为false标记游戏的状态
  2. 判断,当isStart值为false时,显示开始提示文字
  3. 在无参构造方法中设置获取焦点为true,也就是:可以获取键盘的事件
  4. 获取键盘事件后谁来监听,添加监听this.addKeyListener(this);
  • 其中this代表自身,但是目前还没有处理监听事件
  • 则需要在MyPanel类实现KeyListener接口,并且重写三个方法,分别是:keyTyped()、keyPressed()、keyReleased()
  • 在keyPressed()方法或keyReleased()方法中都可以实现
  • 其中参数keyEvent表示按了哪个键,按不同的键获取不同的数字,则通过e.getKeyCode()获取当前按键对应的数字,然后判断,如果按的是空格键或者数字32,则将当前标记isStart值取反,同时没有开始游戏的提示信息,需要调用repaint()方法,表示重新画组件

编写具体代码如下:

image.png

image.png

image.png

image.png

运行效果如下:

image.png

当运行后按空格键效果如下:

image.png

如果再按空格键效果如下:

image.png

今天先到这里,明天说一下让蛇怎样动起来、怎样转向等等问题,学完明天的知识你就可以自己做出贪吃蛇这个小游戏啦!!!