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

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

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

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


相关文章
|
24天前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
2月前
|
iOS开发 MacOS Python
Python 编程案例:谁没交论文?输出并生成电子表格
Python 编程案例:谁没交论文?输出并生成电子表格
28 9
|
2月前
|
iOS开发 MacOS Python
Python编程案例:根据姓名归档论文、报告
Python编程案例:根据姓名归档论文、报告
16 1
|
2月前
|
自然语言处理 Java 编译器
为什么要看 Python 源码?它的结构长什么样子?
为什么要看 Python 源码?它的结构长什么样子?
38 2
|
2月前
|
Python
源码解密 Python 的 Event
源码解密 Python 的 Event
48 1
|
2月前
|
数据采集 前端开发 Python
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
87 0
|
17天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
16天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
4天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
98 80
|
23天前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
134 59
下一篇
DataWorks