如何用java实现一个贪吃蛇小游戏
贪吃蛇是一个非常经典的小游戏,我们该如何用java语言来自己实现这个简单点的游戏呢?我们需要知道java的swing编程知识,制作游戏界面,实现贪吃蛇上下左右移动等功能。如果我们还要保存游戏得分排行榜,还需要学习java文件操作功能等。所以,实现贪吃蛇功能,不仅仅有趣,而且有助于我们更熟练的掌握java。
操作方法
(01)设计游戏,首先就要设计界面。首先看一下我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。
(02)所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏的时候,我们要确切知道游戏区的大小,所以这里设置游戏区固定大小值。本来想用布局来更好的管理,但作者对布局也掌握不够,所以就先设置固定大小吧。
(03)定义我们的游戏。贪吃蛇游戏其实就是包含很多细小网格,然后蛇在网格中移动。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色。如第一张图片所示。所以,我们需要定义二维数组,保存网格信息,保存蛇身和食物的位置信息等。初始化时,还需要添加键盘事件控制上下左右移动。
(04)食物的位置信息是二维的,所以我简单定义了一个类用来保存二维信息。
(05)接着就是实现游戏的功能了。开始,暂停,停止按钮添加事件控制游戏开始。等级按钮定义游戏难度等。
(06)开始游戏后,我们定义一个定时器。蛇身按照指定的方向移动,方向是通过初始化时添加的键盘事件,键盘的上下左右按钮来控制。蛇身是连续的位置信息,保存到队列中,所以蛇身的移动就是队首增加一个位置,队尾减少位置,然后重新绘画游戏区就可以了。在蛇身移动时进一步做吃掉食物、撞墙、撞到自己的处理。这是游戏的主要逻辑。
(07)最后,游戏结束我们弹出一个对话框提示是否保存游戏得分。我们制作了排行榜信息,只保留前10名的游戏得分。首先定义了一个实现Comparable接口的游戏得分类,按得分高,时间最早来排序。
(08)游戏结束时保存得分信息,看是否进入到排行榜中。而之前在初始化排行榜组件时就会加载游戏排行榜信息。通过保存和读取排行榜信息,我们也熟悉一下文件读取操作,还有集合、排序算法的功能。
(09)最后编译运行,结果良好。经验也只能写一个大概的设计,贪吃蛇游戏功能实际是比较简单的,主要就是界面的布局,swing编程等。如果有任何疑问,欢迎大家留言。
-
AC88U 设定无线网路 华硕路由器
AC88U设定无线网路现在家中的电子设备很多,路由器的无线功能就变得很重要操作方法(01)登陆路由器的管理页面(02)AC88U带有2个频段的wifi一个是2.4G(03)另一个频段是5G5G拥有更高的带宽和速率(04)请到[无线网路]>>[一般设定],然后选择您想使用的 [授权方式]一般状况下,...
-
如何使用vmware workstation 12安装虚拟机
虚拟机可以在不安装实际系统的前提下,通过模拟器工具直接在模拟器上安装虚拟的系统。可以在虚拟系统上使用如何真实系统一样。小编今天介绍下如何使用vmwareworkstation12安装虚拟机,linux虚拟机安装方法步骤。操作方法(01)首先下载vmwareworkstation虚拟机工具。...
-
微信怎么备份手机通讯录?
微信怎么备份手机通讯录?我们生活中有很多地方都会用到通讯录,有时候我们也需要备份通讯里,那么手机中如何备份通讯录呢?本就是为了解决大家的这个问题。iTunes(01)果粉们应该都知道iTunes的功能,它的功能十分强大,不仅可以播放音乐,同时也是可以帮助我们备份手机数据的...
-
如何在网上购买彩票?
如何在网上购买彩票?现在网络购彩平台很多,今天我们就以淘宝购买彩票来给各位说说。操作方法(01)首先打开淘宝网(02)登录帐号。输入帐号,密码,登录淘宝(03)点击“我的淘宝”(04)点击“我的彩票”这里可以看大购彩的记录。(05)首次够彩,需要补充和完整身份信息,各位填写个人的真...