【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位置还是一如既往递增。

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

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

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


相关文章
|
18天前
|
存储 小程序 Java
基于Python学生成绩管理系统详细设计和实现(源码+LW+调试文档+讲解等)
基于Python学生成绩管理系统详细设计和实现(源码+LW+调试文档+讲解等)
|
24天前
|
开发框架 Python
Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。
【6月更文挑战第21天】Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。要开始,先通过`pip install pygame`安装。基本流程包括:初始化窗口、处理事件循环、添加游戏元素(如玩家和敌人)、响应用户输入、更新游戏状态及结束条件。随着项目发展,可逐步增加复杂性。
37 1
|
1月前
|
机器学习/深度学习 传感器 算法
基于Mediapipe深度学习算法的手势识别系统【含python源码+PyqtUI界面+原理详解】-python手势识别 深度学习实战项目
基于Mediapipe深度学习算法的手势识别系统【含python源码+PyqtUI界面+原理详解】-python手势识别 深度学习实战项目
|
1月前
|
Python IDE 开发工具
【Python贪吃蛇】:编码技巧与游戏设计的完美结合
【Python贪吃蛇】:编码技巧与游戏设计的完美结合
|
1月前
|
Python
【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码
【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码
|
1月前
|
机器学习/深度学习 存储 算法
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
|
1月前
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的PCB板缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
基于YOLOv8深度学习的PCB板缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
|
1月前
|
机器学习/深度学习 存储 安全
基于YOLOv8深度学习的行人跌倒检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
基于YOLOv8深度学习的行人跌倒检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
|
18天前
|
索引 Python
技术好文共享:用Python的Pygame包做飞行棋
技术好文共享:用Python的Pygame包做飞行棋
|
Linux C语言 开发者
源码安装Python学会有用还能装逼 | 解决各种坑
相信朋友们都看过这个零基础学习Python的开篇了
403 0
源码安装Python学会有用还能装逼 | 解决各种坑