JAVA练手小项目四:贪吃蛇游戏

时间:2009年2月3日
开发工具:ECLIPSE

项目描述:贪吃蛇游戏,实现了蛇,食物,界面等对象。实现了蛇的移动,食物的随机出现以及蛇吃食物变长和蛇移动,食物的随机出现以及蛇吃食物变长和蛇移动到界面外死亡的功能,本项目主要是练习
面向对象的思想,SWING,多线程,事件监听,容器,泛型以及接口的使用等

项目过程:
1.建立一个窗口界面
使用JFrame类与JPanel类进行窗口的建立
1.在JFrame上建立工具条来实现相应的功能如游戏的开始,继续,退出等功能

2.利用面向对象的思想建立各个类
编写各个类的主体框架
对于一个贪吃蛇游戏来说我们要考虑游戏的哪些部分?
组成部分:
 Snake
蛇类用来存放关于蛇的方法:
蛇移动的方法:move();
改变方向的:ChangeDirection();
吃食物的方法:eatFood();
是否移动后撞到自己的身体 boolean isEatBody()
显示自己 drawMe();
启动线程:Runable();
 Food
食物类方法:
是否被蛇吃到:boolean isSnakeEat();
显示食物自己:DrawMe();

游戏显示界面类 GamePanel
显示界面上的物品:disPlay();

控制器类 Controller
此类用于处理按键事件与各种逻辑代码
键盘事件
产生新的游戏方法:启动线程

增加监听接口
处理蛇移动后显示方法和食物存亡以及蛇存亡的方法

3.蛇的移动
蛇如何移动
通过监听类按键处理后利用Point类来得到移动后的坐标,采用addFirst,removeLast()方法对蛇进行添头去尾,向前移动时尾去掉一个,同时在头部显示一个。

4.蛇移动时方向的问题
处理反方向和无效方向
 定义两个方向一个记录现有方向,一个记录移动前方向,判断新老方向是否相反,如果相反新方向,则依然向老方向行驶

5.完成食物类的方法
判断当蛇移动后是否碰到到食物,利用equals方法判断坐标是否相等
画出食物,利用Global类中的设置的大小填充

6.蛇吃食物,蛇吃本身
如果蛇吃到食物,蛇的身体添加一个
如果蛇吃到本身,蛇就死亡(终止线程)

7.解决蛇出界的问题
移动时,如果蛇移动的坐标小于0或大于游戏界面的范围时,蛇死亡

8.处理工具条上的功能
使用事件监听类处理每个按钮。
加速,减速功能:处理PageUP和pageDown键在相应方法中对速度增快或减慢,由于工具条上方法较简单不做多说明,看代码就可以了

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐