如何用Java语言写一个贪吃蛇游戏
文章插图
设计游戏,首先就要设计界面 。首先看一下我设计的一个界面 。
游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜 。所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件 。因为后面设计游戏的时候,我们要确切知道游戏区的大小,所以这里设置游戏区固定大小值 。本来想用布局来更好的管理,但作者对布局也掌握不够,所以就先设置固定大小吧 。
定义我们的游戏 。贪吃蛇游戏其实就是包含很多细小网格,然后蛇在网格中移动 。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色 。
如第一张图片所示 。所以,我们需要定义二维数组,保存网格信息,保存蛇身和食物的位置信息等 。初始化时,还需要添加键盘事件控制上下左右移动 。
食物的位置信息是二维的,所以我简单定义了一个类用来保存二维信息 。接着就是实现游戏的功能了 。开始,暂停,停止按钮添加事件控制游戏开始 。
等级按钮定义游戏难度等 。开始游戏后,我们定义一个定时器 。蛇身按照指定的方向移动,方向是通过初始化时添加的键盘事件,键盘的上下左右按钮来控制 。蛇身是连续的位置信息,保存到队列中,所以蛇身的移动就是队首增加一个位置,队尾减少位置,然后重新绘画游戏区就可以了 。
在蛇身移动时进一步做吃掉食物、撞墙、撞到自己的处理 。这是游戏的主要逻辑 。最后,游戏结束我们弹出一个对话框提示是否保存游戏得分 。我们制作了排行榜信息,只保留前10名的游戏得分 。
首先定义了一个实现Comparable接口的游戏得分类,按得分高,时间最早来排序 。游戏结束时保存得分信息,看是否进入到排行榜中 。而之前在初始化排行榜组件时就会加载游戏排行榜信息 。通过保存和读取排行榜信息,我们也熟悉一下文件读取操作,还有集合、排序算法的功能 。
java贪吃蛇原理
文章插图
楼主没有看到蛇移动的本质,蛇虽然是分成很多块,但他们还是一个整体,每一块的移动都和上一块有关,所以不需要对每一块都进行判断 。原理:把蛇身体的每一块看成一个对象(对象存储该块的坐标和相关信息),作为节点存储在线性链表中,再设置一个变量标志蛇的方向(通过按键可以改变) 。
贪吃蛇 java代码
文章插图
自己写着玩的,很简单,你试一试哦...主要用了javax.swing.Timer这个类:im
- 经常换头像的女生渣吗
- 去海洋馆穿蓝色衣服好不好看
- 我国社会交通状况如何?有哪些突出问题?如何解决?
- 马克笔干了不出水怎么办
- 应该如何正确使用无氟冰箱
- 卫生间漏水不砸砖怎么处理
- 为什么4s店补漆跟全新一样
- 如何红烧牛肉又软又好吃
- 如何应对牛黄解毒片中毒
- 汽车空调清洗剂如何使用