Python成龙快跑小游戏

一、 项目简介

1.1  项目博客地址

https://www.cnblogs.com/cwblogshirlly66/

1.2  项目完成的功能与特色

在程序开始的时候,有一个名叫1940”的“你醒啦”游戏界面,界面上有一个“开始游戏”的按钮,当鼠标移动到这个按钮的时候会变成灰色,离开的时候变成白色,当鼠标与这个按钮重合且按下鼠标左键的时候,游戏就开始。程序里的地图背景是两张图片以相同的速度向左滚动,不断平移,左边的图片移动到最左边的时候,再回到原来的位置,继续滚动,通过调用updaterolling的方法,形成了无限循环滚动的地图。这个游戏设置了背景音乐,爆炸声以及跳跃的声音,增加了游戏的乐趣。玩家通过按下空格键,玩家会跳跃,避开子弹的攻击,此外还需要更新子弹来不断攻击乘龙。这个游戏应用矩形检测技术,来检测玩家是否被子弹攻击到以及是否被怪物追上。玩家通过跳跃吃到头顶的果实以此来获得积分,以此判断是否通过关卡。

 

1.3  项目采用的技术栈

矩形冲突检测技术button重合,无限滚动地图,ps技术,音频技术,MylibraryPygame

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 不足之处

    画面、做工质量较为模糊,游戏玩法较为单一,还有这些不足之处需要改善。


猜你喜欢

转载自www.cnblogs.com/cwblogshirlly66/p/12010243.html