一、项目简介
1.1 项目博客地址
https://www.cnblogs.com/cwblogshirlly66/
1.2 项目完成的功能与特色
在程序开始的时候,有一个名叫“1940”的“你醒啦”游戏界面,界面上有一个“开始游戏”的按钮,当鼠标移动到这个按钮的时候会变成灰色,离开的时候变成白色,当鼠标与这个按钮重合且按下鼠标左键的时候,游戏就开始。程序里的地图背景是两张图片以相同的速度向左滚动,不断平移,左边的图片移动到最左边的时候,再回到原来的位置,继续滚动,通过调用update与rolling的方法,形成了无限循环滚动的地图。这个游戏设置了背景音乐,爆炸声以及跳跃的声音,增加了游戏的乐趣。玩家通过按下空格键,玩家会跳跃,避开子弹的攻击,此外还需要更新子弹来不断攻击乘龙。这个游戏应用矩形检测技术,来检测玩家是否被子弹攻击到以及是否被怪物追上。玩家通过跳跃吃到头顶的果实以此来获得积分,以此判断是否通过关卡。
1.3 项目采用的技术栈
矩形冲突检测技术,button重合,无限滚动地图,ps技术,音频技术,Mylibrary,Pygame
1.4 项目借鉴源代码的地址
http://www.cnblogs.com/SRL-Southern/p/4949624.html
1.5 团队成员任务分配表
模块一 |
模块二 |
模块三 |
模块四 |
模块五 |
|
蔡雪晗 |
“开始游戏”的按钮的变色情况 |
空格键跳跃 |
子弹的无限循环以及玩家的躲避 |
碰撞检测,子弹是否击中玩家 |
关卡的设置 |
模块六 |
模块七 |
模块八 |
模块九 |
模块十 |
|
王志鸿 |
地图的图片滚动,以及所有图片的制作 |
三种背景音乐的制作 |
躲避怪物的追击 |
头顶积分的不断移动和累加 |
碰撞检测,子弹是否击中怪物 |
二、项目的需求分析
(一)项目名称:乘龙快跑游戏
(二)项目描述:
文件运行后弹出窗口,点击开始游戏,进入第一关,玩家通过按下空格键来控制乘龙的跳跃,乘龙通过跳跃来避开子弹的攻击以及怪物的追杀,乘龙避开子弹后,子弹会攻击到怪物,每攻击一次,怪物就会减速,往后退一些,直到怪物完全退出屏幕,游戏通关,进入下一关,若玩家没有及时的躲开子弹,子弹就会攻击到玩家,渐渐的怪物就会追上乘龙,游戏结束。此外玩家还可以吃头顶的分数来获取积分。
(三)功能模块:
1. “开始游戏”的按钮的变色情况
当鼠标移动到这个按钮的时候会变成灰色,离开的时候变成白色,当鼠标与这个按钮重合且按下鼠标左键的时候,游戏就开始。
2. 空格键跳跃
当按下空格键的时候,乘龙跳跃起来,初速度为-12.0,每一次跳跃都增加,当乘龙回到自己的位置的时候,速度为0,即回到自己的位置。
3. 子弹的无限循环以及玩家的躲避
只要游戏不结束,就可以不断的更新子弹,子弹会无限循环,玩家躲避不断发射的子弹,火箭也需要不断的更新。
4. 碰撞检测,子弹是否击中玩家
通过矩形冲突检测技术来检验子弹是否击中玩家,爆炸的位置与玩家重合的时候,玩家被击中,发出爆炸的声音。
5. 关卡的设置
玩家通过控制空格键来操控乘龙跳跃,乘龙躲避子弹的攻击,从而子弹就会攻击怪物,每攻击一次怪物,怪物就会减速,往后退一些,直到怪物完全退出屏幕,游戏通关,进入下一关,若玩家没有及时的躲开子弹,子弹就会攻击到玩家,渐渐的怪物就会追上乘龙,游戏结束。
6. 地图的图片滚动,以及所有图片的制作
将两张地图同时向左移动,当最左边的地图完全离开屏幕的时候,又回到原来的位置,这样就形成了不断滚动的地图了。此外制作了开始游戏界面、怪物、乘龙、积分、子弹,爆炸的图片等等。
7. 三种背景音乐的制作
当开始游戏的时候,先播放舒心的背景音乐,随着玩家按着空格键后跳跃起来,从而发出跳跃声,此外子弹攻击到乘龙和怪物,会发出爆炸声。通过一个mucic类来控制音乐响起来和音乐的停止以及声音的大小,建立一个音频频道和Channel.play()方法来播放。
8. 躲避怪物的追击
玩家通过按空格键控制乘龙的跳跃来避开子弹,还可以碰到上面的条形物体来获得积分,而乘龙避开子弹的同时子弹进攻怪物,怪物会以此减速,从而避开怪物。
9. 头顶积分的不断移动和累加
玩家操控的乘龙不断跳跃,会碰到头顶的积分,碰到的积分物体就会消失,将积分累加起来,需要遍历积分物体,将积分物体依次左移5个单位。
10. 碰撞检测,子弹是否击中怪物
通过矩形冲突检测技术来判断子弹的位置和怪物的位置是否重合,当重合的时候,即击中怪物。
三、项目功能架构图、主要功能流程图
功能架构图:
主要功能流程图:
四、系统模块说明
4.1 系统模块列表
1. “开始游戏”的按钮的变色情况
2. 空格键跳跃
3. 子弹的无限循环以及玩家的躲避
4. 碰撞检测,子弹是否击中玩家
5. 关卡的设置
6.地图的图片滚动,以及所有图片的制作
7.三种背景音乐的制作
8.躲避怪物的追击
9.头顶积分的不断移动和累加
10.碰撞检测,子弹是否击中怪物
4.2 各模块详细描述(名称,功能,运行截图,关键源代码)
4.2.1
名称:“开始游戏”的按钮的变色情况
功能:定义鼠标停留和离开时的两种图片以及位置,通过接口的图片来创建按钮的。当准备开始游戏的时候,将鼠标移动到“开始游戏”的按钮,变为灰色,点击的鼠标按钮,游戏开始。当游戏还未开始的时候,鼠标在按钮以外的位置,显示白色。定义isStart的方法来判断游戏开始。
运行截图:
关键源代码:
4.2.2
名称:空格键跳跃
功能:游戏停止有两种情况,一种是事件类型为游戏停止,一种是通过空格键来操控,脱离空格键,即没有按下空格键的时候,游戏停止。当按下空格键的时候,乘龙跳跃起来,初速度为-12.0,每一次跳跃都增加,当乘龙回到自己的位置的时候,速度为0,即回到自己的位置。
运行截图:
关键源代码:
4.2.3
名称:子弹的无限循环以及玩家的躲避
功能:只要游戏不结束,就可以不断的更新子弹,子弹会无限循环,玩家躲避不断发射的子弹,火箭也需要不断的更新。
运行截图:
关键源代码:
4.2.4
名称:碰撞检测,子弹是否击中玩家
功能:通过矩形冲突检测技术来检验子弹是否击中玩家,爆炸的位置与玩家重合的时候,玩家被击中,发出爆炸的声音。
运行截图:
关键源代码:
4.2.5
名称:关卡的设置
功能:玩家通过控制空格键来操控乘龙跳跃,乘龙躲避子弹的攻击,从而子弹就会攻击怪物,每攻击一次怪物,怪物就会减速,往后退一些,直到怪物完全退出屏幕,游戏通关,进入下一关,若玩家没有及时的躲开子弹,子弹就会攻击到玩家,渐渐的怪物就会追上乘龙,游戏结束。此外玩家还可以吃头顶的分数来获取积分。
运行截图:
关键源代码:
4.2.6
名称:地图的图片滚动,以及所有图片的制作
功能:将两张地图同时向左移动,当最左边的地图完全离开屏幕的时候,又回到原来的位置,这样就形成了不断滚动的地图了。此外制作了开始游戏界面、怪物、乘龙、积分、子弹,爆炸的图片等等。
运行截图:
关键源代码:
4.2.7
名称:三种背景音乐的制作
功能:当开始游戏的时候,先播放舒心的背景音乐,随着玩家按着空格键后跳跃起来,从而发出跳跃声,此外子弹攻击到乘龙和怪物,会发出爆炸声。通过一个mucic类来控制音乐响起来和音乐的停止以及声音的大小,建立一个音频频道和Channel.play()方法来播放。
运行截图(双击音频可以播放):
关键源代码:
4.2.8
名称:躲避怪物的追击
功能:玩家通过按空格键控制乘龙的跳跃来避开子弹,还可以碰到上面的条形物体来获得积分,而乘龙避开子弹的同时子弹进攻怪物,怪物会以此减速,从而避开怪物。
运行截图:
关键源代码:
4.2.9
名称:头顶积分的不断移动和累加
功能:玩家操控的乘龙不断跳跃,会碰到头顶的积分,碰到的积分物体就会消失,将积分累加起来,需要遍历积分物体,将积分物体依次左移5个单位。
运行截图:
关键源代码:
4.3.0
名称:碰撞检测,子弹是否击中怪物
功能:通过矩形冲突检测技术来判断子弹的位置和怪物的位置是否重合,当重合的时候,即击中怪物。
运行截图:
关键源代码:
五、项目总结
5.1 特点
基本功能比较全,能满足基本的功能操作,轻快的背景音乐让人身心舒畅,爆炸声和跳跃声不同的音乐符合游戏的氛围,让玩家身临其境。
5.2 不足之处
画面、做工质量较为模糊,游戏玩法较为单一,还有这些不足之处需要改善。
原文地址:https://www.cnblogs.com/cwblogshirlly66/p/12010243.html