Java版贪吃蛇
运行结果
开发环境
操作系统:win10 |
开发IDE:IDEA |
主要技术:GUI |
整体构思
这里以思维导图的形式给出整个项目的概况:
主要原理阐述
整个程序的核心有两点:
1、创建一个键盘监听器,监听玩家的键盘输入,从而控制蛇的移动。 |
2、创建一个定时器,每隔指定时间后改变蛇的位置坐标,然后在画板上重新打印,实现蛇的移动。 |
重、难点阐述
一、如何使用素材
因为在Java中是万物皆对象,所以我们需要将素材图片封装为对象,方便使用。
二、有了窗体就可以在上面弄小蛇了吗?
当然是不可以的,我们需要创建一个面板(继承JPanel),然后将面板添加到窗口中(通过add方法)。
三、如何将窗体设置在屏幕中间?
首先我们需要通过底层方法:GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode()获取到屏幕大小,然后减去窗体大小再除以2就是窗体的坐标。
四、当小蛇死亡后如何继续开始游戏?
我们需要将初始化小蛇状态的代码从构造器里提出来,然后专门创建一个初始化方法来初始化小蛇的状态,在小蛇死亡后调用该方法就可以回到最初状态。
五、如何让蛇动起来?
只需要将蛇的后一节身子的坐标改为前一节身子的坐标(通过循环实现),然后按照蛇的前进方向改变蛇头的坐标后再重新在画板上打印即可实现蛇的移动。
六、蛇吃到食物会发生什么?
当蛇头的位置坐标和食物的位置坐标重合后,即代表蛇吃到了食物。这是需要做以下几件事:
1、得分+1 |
2、蛇的长度+1,通过ArrayList的add方法在容器的最后根据蛇的前进方向再加一节身子 |
3、随机产生不在蛇身子上的食物 |
程序源码
完整程序源码请从微信公众号:青云学斋(文末附有二维码)获取
主要部分程序代码如下:
封装素材图片:
创建窗体:
定时器:
产生随机食物坐标:
在画板上绘制蛇、食物等:
获取完整程序源码请关注微信公众号:青云学斋,后台输入贪吃蛇即可,二维码如下: