一、实验要求
1)、实现贪吃蛇游戏基本功能,屏幕上随机出现一个“食物”,称为豆子,上下左右控制“蛇”的移动,吃到“豆子”以后“蛇”的身体加长一点。
2)、“蛇”碰到边界或蛇头与蛇身相撞,蛇死亡,游戏结束。
3)、为游戏设计友好的交互界面;例如欢迎界面,游戏界面,游戏结束界面。要有开始键、暂停键和停止退出的选项。
4)、对蛇吃到豆子进行分值计算,可以设置游戏速度,游戏音乐等拓展元素。
二、实验步骤
1、首先是搭建游戏基本界面框架
搭建窗口:创建一个JFrame的继承类Frame,完成窗口的基本设置(窗口尺寸,名称,窗口可视化等等)
创建一个JPanel的继承类GamePanel,来装游戏的基本界面
首先考虑游戏过程中需要的按钮
基本的游戏按钮需要设置开始,暂停,退出,在这里为了简洁,我把开始和暂停设置在同一个按钮上,根据不同的情况触发不同的功能除此之外,还需要设置一个JLable用于显示当前分数。并对这些组件进行基本设置,如背景色,字体大小等。
设置好后,全部添加到Frame的NORTH位置。
2、贪吃蛇算法实现
1)、首先要实现的是蛇头和食物的随机生成
创建一个关于蛇的类Snake,并在其中设置两个列表,一个snake列表,存放除蛇头以外的所有蛇身的坐标,一个snakeHead列表 ,存放蛇头坐标。并且设置两个全局变量x,y记录蛇头坐标。
并分别给蛇头和蛇身设置图片,以及游戏界面背景图片
2)、贪吃蛇移动实现
首先给开始和暂停按钮设置键盘监听。在这里,我用键盘按键的code值来进行判断并设置相应动作
3、开始界面和游戏结束界面的搭建
1)、创建一个JPanel继承类StartPanel用于设置开始界面的组件内容。
在此需要包含的组件有游戏名称(JLabel)、开始按钮、速度按钮、历史最高纪录按钮。设置网格布局模式,并按4排1列的方式排列。并设置好这几个组件的外观。(为了增加趣味性,我把游戏名称设置为“抓水母”。)
给三个按钮设置按键监听。
点击开始按钮时,关闭当前窗口,打开之前设置的主要游戏窗口。