项目效果展示和介绍
运行效果图如下:
这个项目最初的时候是一个贪吃蛇,但是因为Java大作业做贪吃蛇的同学实在太多了,要是也交个贪吃蛇,肯定有和别的同学撞车的风险,而且老师也肯定看腻了,因此我就根据原先的贪吃蛇项目进行魔改,以蜘蛛侠和毒液作为项目的背景,把原先的贪吃蛇作为毒液~
先介绍一下游戏规则:
游戏开始后,我们操纵的是毒液(就是图上的贪吃蛇),右下角的蜘蛛侠会根据毒液的位置,向毒液所在的方向移动(具体的逻辑就是根据毒液的头部所在的位置,朝该方向移动),如果蜘蛛侠碰到了毒液的身体,游戏结束(当然如果贪吃蛇碰到了自己的身体也游戏结束,和原先的贪吃蛇规则一样),这里有三种食物,吃掉食物可能会造成分数score和身体长度的变化,第一种食物(加分加长度),第二种食物(减分加长度,不要吃),第三种食物(加分减长度,多吃),毕竟长度越短越不容易被抓嘛,当然这些规则可以自己改。随着分数的增加,界面会出现提示,提示蜘蛛侠加速了,这里蜘蛛侠会根据分数的增多一直进行加速。 另外这个项目还带上了背景音乐:)
分数到1000,蜘蛛侠加速了:)
被蜘蛛侠抓到了,游戏结束了 :(
另外为了方便直接运行,我还把项目打成了jar包的形式,只要在命令行运行即可啦~
下面是实验报告节选:
1.系统总体设计
一、需求分析
- 三种不同的食物在被毒液吃掉后会在新位置随机生成。
- 毒液在吃到不同的食物后,长度和所得分数会发生相应的改变。
- 对于毒液,通过方向键实现移动方向的改变,同时,头部造型也随方向的改变而做出相应的调整。
- 蜘蛛侠会根据毒液的移动方向,自动做出移动方向的调整,去追赶毒液。
- 毒液分数超过一定值时,蜘蛛侠移动速度加快,并且在游戏区给出相应的警告。
- 毒液被蜘蛛侠抓到或者毒液的头部触碰了身体时,游戏结束。
- 添加了游戏背景音乐,并且在游戏过程中可以循环播放。
- 添加了控制按钮(空格),可以实现对游戏及音乐的暂停,以及在游戏结束后的重新开始。
- 在标题界面画出了三种不同食物对应的属性和提示,并实时更新毒液的长度和游戏分数。
- 打包成jar文件,方便使用。
二、概要设计
- 编写一个MPanel类,将对应功能的实现都放入这个类中。
- 通过该类的构造函数,实现游戏初始化,图片和音乐的加载。
- 在该类中通过方法paintComponent(Graphics g)来调用该类中的所有paint方法,进行绘图。
- 在该类中通过方法keyPressed(KeyEvent e)来调用该类中的所有Response方法,进行对键盘的监听和响应。
- 在该类中通过方法actionPerformed(ActionEvent e)来调用该类中的所有Movement方法和judgeFailed方法,来实现内容的移动和游戏结束判断。
2.功能模块划分
3.系统详细设计
(1)类的设计及类继承关系
(2)系统流程图
(3)方法调用关系
4.各个功能模块的实现方法描述
代码风格如下:
//对空格进行响应 实现暂停和重新开始
private void spaceResponse(KeyEvent e) {
int keyCode=e.getExtendedKeyCode();//获取所敲的键盘对应的数字
if(keyCode==KeyEvent.VK_SPACE) {//如果敲击的是空格键
if(isFailed) {//游戏结束后再次敲击空格 重新开始
isFailed=false;//游戏重新开始时将isFailed置false
initSnake();
}
else {
isStarted=!isStarted;//取反状态 开始-暂停 暂停-开始
}
repaint(); //修改isStarted参数后重新调用方法
//重新画一遍 使得效果展示出来
if(isStarted) {//在空格响应事件中实现声音的播放和暂停
playBGM();
}else {
stopBGM();
}
}
}
全部源码+完整的实验报告(20r),可以邮箱私信我yangsober@163.com文章来源:https://www.toymoban.com/news/detail-490333.html
文章来源地址https://www.toymoban.com/news/detail-490333.html
到了这里,关于Java毕业设计(Java大作业课程设计)——贪吃蛇魔改版(附源代码和完整实验报告)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!