Python成龙快跑小游戏

一、项目简介

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

时间: 2024-11-05 21:59:22

Python成龙快跑小游戏的相关文章

【python游戏编程之旅】第九篇---嗷大喵快跑小游戏开发实例

本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 前几期博客我们一起学习了,pygame中的冲突检测技术以及一些常用的数据结构. 这次我们来一起做一个简单的酷跑类游戏综合运用以前学到的知识. 程序下载地址:http://yunpan.cn/cLIcJgTvq4tZS 访问密码 901f 源代码网盘地址:http://yunpan.cn/cLIc67S4nNRFY 访问密码 c139 github地址:https://github.com/XINCGer/

Python开发接水果小游戏

我研发的Python游戏引擎Pylash已经更新到1.4了.现在我们就来使用它完成一个极其简单的小游戏:接水果.以下是游戏截图: 游戏操作说明:点击屏幕左右两边或者使用键盘方向键控制人物移动,使人物与水果接触得分,碰到非水果的物品,如碎玻璃,就会game over. 接下来是详尽的开发过程,篇幅较长,请看官耐心阅读. Pylash项目地址 由于本次开发用到了pylash,大家可以先去Github上对引擎进行了解. https://github.com/yuehaowang/pylash_engi

利用Python制作一个连连看小游戏,边学边玩!

导语 今天我们将制作一个连连看小游戏,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 先睹为快 在cmd窗口运行"Game15.py"文件即可. 效果如下: 原理简介 游戏规则: 玩家通过鼠标交换相邻的拼图,若交换后水平/竖直方向存在连续三个相同的拼图,则这些拼图消失,玩家得分,同时生成新的拼图以补充消失的部分,否则,交换失败,玩家不

python成语接龙小游戏

上一篇讲了小游戏的坑现在把源码放出来 1 import string 2 import pypinyin 3 import sys 4 5 print("初始化中,请稍等……") 6 7 robot=["哀鸿遍野"]#可自己添加机器人的成语 8 9 robotpy1=[] 10 for k in robot: 11 robotpy1.append(pypinyin.pinyin(k, style=pypinyin.NORMAL)[0]) 12 13 f2 = ope

利用Python自制雷霆战机小游戏,娱乐编程,快乐学习!

开发工具 Python版本:3.6.4相关模块:pygame模块:以及一些Python自带的模块.环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可.先睹为快 在cmd窗口运行"Game10.py"文件即可.效果如下:原理简介 游戏规则简介: 游戏模式包括单人模式和双人模式. 单人模式中,玩家通过↑↓←→控制飞船行动,J键发射炮弹:双人模式中,玩家一通过↑↓←→控制飞船行动,J键发射炮弹,玩家二通过wsad控制飞船行动,空格键发射炮弹.每击碎一个小行星(或者说陨石

python pygame做的小游戏(贪吃蛇)

# pygame游戏库,sys操控python运行的环境 import pygame, sys, random # 这个模块包含所有pygame所使用的常亮 from pygame.locals import * # 1,定义颜色变量 # 0-255 0黑色 255白色 redColor = pygame.Color(255, 0, 0) # 背景为黑色 blackColor = pygame.Color(0, 0, 0) # 贪吃蛇为白色 whiteColor = pygame.Color(2

【python学习】使用python写一个2048小游戏

个人博客:jerwang.cn 没有参考其他代码,效果图: 话不多少,源代码: https://github.com/jerustc/Python/blob/master/2048.py

python——成语接龙小游戏

小试牛刀的简易成语接龙. 思路-- 1.网上下载成语字典的txt版本 2.通过python进行处理得到格式化的成语,并整理成字典(python字典查找速度快) 3.python程序,查找 用户输入的最后一个字和字典里首字一致的,放入列表,并通过random进行随机选择,然后输出 字典整理部分:转换成字典 file = open(r'D:\Desktop\zidian.txt').readlines() f = open(r'D:\Desktop\zidian3.txt','w') x={} nu

python写贪吃蛇小游戏

python的pygame模块写的. 运行界面: # 没搞素材,丑了点 身体跟随蛇头的实现思路: 1. 通过双向链表+两个标志. 链表是为了,蛇头改变方向后,告诉后一个身体,移动后跟着主蛇方向改变,之后身体在告诉后一个身体,跟随前一个身体方向改变. 两个标志(start_flag,change_flag)是为了,每一帧依次改变方向,而不是一个帧内就循环告诉完全部身体方向改变. 2. 加上两个标志,只记录一次前者方向,那么主体发生连续两次改变会出现的情况 解决方式:身体有存前者改变方向的列表 #