【python毕业设计】python基于Pygame的吃金币游戏设计与实现(源码+毕业论文)【独一无二】

简介: 【python毕业设计】python基于Pygame的吃金币游戏设计与实现(源码+毕业论文)【独一无二】


👉博__主👈:米码收割机

👉技__能👈:C++/Python语言

👉公众号👈:测试开发自动化【获取源码+商业合作】

👉荣__誉👈:阿里云博客专家博主、51CTO技术博主

👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。



一、资源展示

1.1. 论文展示

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设吃金币 ” 获取。👈👈👈

1.2. 代码展示

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设吃金币 ” 获取。👈👈👈


二、开发思路

  1. 导入模块部分
  • 导入了几个 Python 标准库模块以及 Pygame 模块,用于实现游戏所需的各种功能,包括文件操作、系统交互、随机数生成和游戏开发。
  1. 获取历史最高分函数 getScore()
  • 当游戏开始时,检查是否存在历史最高分文件。
  • 如果存在,从文件中读取历史最高分,并返回该值。
  • 如果不存在或文件为空,返回默认值 0。
  1. 保存分数函数 saveScore(score)
  • 在游戏结束时,将当前分数保存到历史最高分文件中。
  • 仅当当前分数超过历史最高分时才进行保存。
  1. 定义农民精灵类 FarmerSprite
  • 表示游戏中的农民角色。
  • 具有移动、绘制等功能。
  • 包括移动方向、位置、速度等属性。
  • 可根据移动方向加载不同的农民图片,实现动画效果。
  1. 定义食物精灵类 foodSprite
  • 表示游戏中掉落的食物。
  • 包括不同种类的食物,如苹果、金币、胡萝卜和炸弹。
  • 具有移动、绘制等功能。
  • 包括食物种类、价值和下落速度等属性。
  1. 显示游戏结束界面函数 GameOver()
  • 在游戏结束时,显示游戏结束的界面。
  • 包括游戏得分、历史最高分等信息。
  • 等待玩家按键或关闭窗口来结束游戏。
  1. 主函数 main()
  • 游戏的主要逻辑实现部分。
  • 初始化游戏窗口、音乐、时钟等参数。
  • 实例化农民角色和食物组。
  • 处理游戏中的事件,如键盘事件和退出事件。
  • 控制农民角色的移动,并实现与食物的碰撞检测。
  • 控制食物的生成、移动和消失。
  • 在屏幕上显示游戏的分数、生命值和剩余时间。
  • 循环更新屏幕,并控制游戏的帧率。

三、功能展示

登录界面的主要采用PyQT5来设计,QT5是通用的基于高性能的Qt的GUI控件集。能够跨平台运行在Linux、Window和Mac OS系统上。使用信号槽机制进行通信。对Qt库进行完全封装。可以使用成熟的IDE进行界面设计,并自动生成可执行的Python代码。提供一整套种类齐全的窗口控件。

登录界面的设计风格采用无头设计的形式,主要包含登录、注册、退出,用户点击推出以后,会自动退出,界面消失。登录成功后会进入游戏当中。用户也可以根据自己的需求建立自己的个人账号。

登陆界面主要包含登录和注册,游戏界面为用户提供了默认的登录账号和密码均为admin,用户通过注册,可以注册自己的账号,并且可以将账号信息,存储在account.db数据库文件中,存储的形式是持久化储存,重新启动程序后,用户仍能够登录自己的账号。

登录界面加入了容错机制,如果用户名或密码为空,会报错提示用户输入正确的账号信息;如果用户输入了错误的账号密码,也会报错提示。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设吃金币 ” 获取。👈👈👈

图3.5 吃金币游戏登录账号错误提示

图3.6 吃金币游戏登录账号为空提示

注册界面,对用户名进行了判断,如果用户名存在数据库中,会提示用户数据库中存在用户名,请重新注册账户;如果用户名为空,也会提示输入正确的用户名;用户名只可以使用字母、数字的形式进行注册,如果非法符号,会导致注册不成功,并报错提示用户。

图3.7 吃金币游戏注册用户名错误提示

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设吃金币 ” 获取。👈👈👈

同时,加入了密码二次确认机制,如果两次密码不一致,会提示用户重新输入密码;密码不可为空,为空也会出现报错。

图3.8 吃金币游戏密码输入不一致提示

图3.9 吃金币游戏密码输入为空提示

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设吃金币 ” 获取。👈👈👈

该游戏中的物品光是游戏人物和地图的话还是远远不够的。添加好游戏人物和地图之后,就应该将游戏中所应该出现的道具添加到游戏界面上去。

在道具管理模块中,应该有对道具数据的初始化,以及道具的效果及持续时间管理,障碍物也应该算到道具管理模块,只不过是负效果道具。道具管理模块中应该以道具类型的数量区分来管理道具。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设吃金币 ” 获取。👈👈👈

主要的道具有以下种类、效果及管理方法:

萝卜道具:主要的加分道具,得到一个道具可以加1分,数量众多,在模块中以数组的形式进行管理。

苹果道具:特殊道具,得到一个可以加3分。数量较少所以以单一实例的形式进行管理。

炸弹道具:特殊道具,得到一个积分清0。数量较少,所以以单一实例的形式进行管理。

金币道具:特殊道具,得到一个可以加5分。数量较少所以以单一实例的形式进行管理。

(1)道具乱放

for coin in coin_arr:
       coin.set_position(-2 + math.random()*4, 0, posz)
       posz += 2
       map.addchild(coin)

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设吃金币 ” 获取。👈👈👈

(2)直线型摆放

left_or_right.number = math.random() 
if left_or_right > 0.5:
posx.Number = -2
posx.Number=2

这种摆放方式首先进行一次随机,来决定是左边一条直线还是右边一条直线,然后X方向位置不变,Z方向位置递增。

(3)Z字型摆放

left_or_right.number=math.random()  
posx.number= -2.5 + math.random() * 5 
switchz.number = 1 
for coin in coin_arr: 
    coin.set_position(posx, 0, posz) 
    posz += 2 
    if(posx >= 2) 
        switchz = -1 
    elif posx <= -2 
        switchz = 1 
        posx += switchz  
        map.addchild(coin)

这中摆放先随机一个X位置,然后X位置递增,X位置的绝对值超过2时,X位置便开始递减,从此往复,Z位置还是一如既往递增。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设吃金币 ” 获取。👈👈👈

对于人物的控制可以通过界面中的自定义信息来设置,主要包括技能设置,跳跃、下蹲、左移、右移、使用道具等操作。但是同时,为了获得较好的用户体验,也可以采用鼠标在界面上滑动的方式。完成跳跃、下蹲、左跳、右跳。默认值如下:

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设吃金币 ” 获取。👈👈👈


相关文章
|
2月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
94 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
2月前
|
Python
用python进行视频剪辑源码
这篇文章提供了一个使用Python进行视频剪辑的源码示例,通过结合moviepy和pydub库来实现视频的区间切割和音频合并。
65 2
|
1天前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
1月前
|
iOS开发 MacOS Python
Python 编程案例:谁没交论文?输出并生成电子表格
Python 编程案例:谁没交论文?输出并生成电子表格
|
1月前
|
iOS开发 MacOS Python
Python编程案例:根据姓名归档论文、报告
Python编程案例:根据姓名归档论文、报告
|
1月前
|
自然语言处理 Java 编译器
为什么要看 Python 源码?它的结构长什么样子?
为什么要看 Python 源码?它的结构长什么样子?
26 2
|
1月前
|
Python
源码解密 Python 的 Event
源码解密 Python 的 Event
42 1
|
2月前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
50 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
1月前
|
数据采集 前端开发 Python
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
73 0
|
3月前
|
Ubuntu Linux 数据安全/隐私保护
使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用
本文介绍了在Linux系统(Ubuntu 18.04)下将Python源代码(`.py文件`)加密为`.so文件`的方法。首先安装必要的工具如`python3-dev`、`gcc`和`Cython`。然后通过`setup.py`脚本使用Cython将`.py文件`转化为`.so文件`,从而实现源代码的加密保护。文中详细描述了从编写源代码到生成及调用`.so文件`的具体步骤。此方法相较于转化为`.pyc文件`提供了更高的安全性。
168 2
下一篇
无影云桌面