作为初次接触程序设计的我在看到云班课中用python进行游戏编程后感到很有意思,所以我决定这次做一个最经典的小鸟管道游戏。虽然网上许多大佬都说这是最基础的一项游戏编码,但我还是用了许多时间去做成这个游戏。

一.首先安装pygame

这个安装是由很多方法的,根据结课时老师和学长总结的和我在网上找到的,目前是总结了三种:

(1)输入 pip install pygame进行安装;

(2)在pygame中直接输入‘pygame’,点击小灯泡;

(3)在菜单中搜索安装,

双击,找到pip再双击,

进行搜索,点击install package即可进行安装,安装成功后右下角会有提示。

二.准备游戏图片

包括小鸟的形象、游戏背景等都需要与代码在同一个文件里的图片文件。

这个我是在百度上找到了别人的网盘图片打包到自己的文件中。

准备完毕,然后就可以进行编码制作游戏了。

三.游戏编码

根据云班课中的视频教学,游戏制作大概可以分为六部分来进行。

1.设置游戏窗口背景

进行背景设置,将背景图片放置在窗口上,通过轮询来获取操控,进行游戏。

2.定义小鸟类

对小鸟的皮肤、坐标、降落速度、生命状态等进行设置,考虑到小鸟的各种运动状态,通过改变小鸟的坐标来实现变化。

3.定义管道类

定义上管道和下管道的X坐标,并小鸟飞跃管道时分数加1,设置管道坐标逐渐减小,形成管道向左移动。

4.创建地图

显示游戏中的背景图片,小鸟图片、管道图片以及显示文字。

5.判断碰撞

使用pygame.Rect.colliderect来判断小鸟和管道是否碰撞以及是否飞出上下边界。

6.加载文字

通过文字来显示数据的变化,通过设置文字的颜色和位置来在游戏窗口上展示。

7.游戏效果(含视频存于百度网盘中和视频截图)

链接:https://pan.baidu.com/s/1RTNQrcehLUKNCP_k64MCMQ

提取码:xngd

复制这段内容后打开百度网盘手机App,操作更方便哦

8.码云链接

https://gitee.com/ma-changruo/py.git

四.实验中遇到的问题和解决过程

问题一:

解决方法:看到这个在一开始是有点迷惑的,因为自己是事先已经安装了pygame模块的,然后百度进行了搜索,结果发现是一个简单但是又容易忽略的问题,就是文件名与pygame重名。也就是说改一下这个文件名就可以了。https://blog.csdn.net/weixin_43495813/article/details/102919181

问题二:这算是一个比较傻的问题了,当我一切就绪后发现代码中没有对'Ture'的定义,于是就在定义的部分加上了Ture = 'Ture'

然而当程序开始运行时,我发现了游戏的框框和内容都是黑色的:

解决方法:我开始在网上寻找,但是我没有找到类似的错误。只有在很多篇中看到了一个类似的,说是代码错误,于是乎我又重新检查了一下我的代码,发现有的地方敲的是'Ture',有的地方敲的是'True',还有一些地方是我上面定义的和下面使用的不一样,总而言之就是有许多奇奇怪怪的错误。这也提示了我不仅要在编代码的时候保持认真,在编完后也要仔细检查,不能因为代码有点长就偷懒不检查了,要不然会出现更多奇怪的错误。

五.课后感想

就我平时学习的C语言和python而言,我觉得python是更加有趣的,也可能是因为课程原因,我觉得python是更能给人创造、发挥的空间的一门语言。课堂内容也是很生动形象的,不只是有确定的语法知识,王老师还会结合生活中的实际给我们讲课,还有和大家一起编码,这样也就方便了当同学们有问题的时候可以及时解决;有时王老师还会敲出一些常见的错误语句和同学们一起去解决,使课堂不再是老师的课堂,而是一个彼此共同交流、分享经验的沙龙会。

王老师也十分注重我们解决问题的能力,在第一次上课时,王老师就向我们说明了自己通过思考、查找资料等途径独立解决问题比直接获得答案更为重要。其实在步入大学之前我并没有怎么使用过电脑,就连大一上学期也只是偶尔用电脑写个文档,在这个学期,我才是真正了解到了电脑的用处不只是玩游戏,还有路径、文件、结构等等各种名词,在尝试解决各种问题的过程中对计算机一些常见问题逐渐熟悉,逐渐开始能够靠着自己已有的知识储备解决问题。

综上所述,在这门课中,我最大的收获就是培养了自我解决问题的习惯,独立思考、自己动手、询问前辈、积累经验,这样才能在每一点点学习中不断进步。

六.意见和建议

在上课的时候我还是会发现有一些同学在课堂上没有听老师讲课的内容,而且有时候我在上课时代码敲的慢一些就会跟不上老师的节奏,所以我希望老师在以后的课程中可以在开始的时候先组建学习小组,这样的话在以后上课的时候小组成员可以坐的稍微集中一些,一起学习、相互监督,或者像本次课一样进行小组课题展示,激发每一位学生的学习积极性。

七.参考资料

1.https://blog.csdn.net/weixin_42756970/article/details/107429058

2.https://blog.csdn.net/weixin_43495813/article/details/102919181

20203412马畅若《Python程序设计》实验四Python综合实践报告的更多相关文章

  1. Python程序设计实验报告四:循环结构程序设计(设计型实验)

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2020.4.8     指导老师       修宇 [实验名称 ...

  2. PYTHON程序设计实验

    Python程序设计实验报告一: 熟悉IDLE和在线编程平台 安徽工程大学 Python程序设计实验报告 班级 物流191 姓名 邹缕学号 3190505117成绩 ▁▁▁ 日期 2020.3.5 指 ...

  3. Python程序设计实验报告二:顺序结构程序设计(验证性实验)

      安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  崔攀  学号3190505136 成绩 日期     2020.3.22     指导老师       修宇 [实验 ...

  4. Python程序设计实验报告一:熟悉IDLE和在线编程平台

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  崔攀  学号3190505136 成绩_____           日期     2020.3.8     指导老师  ...

  5. Python程序设计 实验 1 熟悉 IDLE 和在线编程平台

    ------------恢复内容开始------------ 安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2 ...

  6. Python程序设计实验报告三:分支结构程序设计

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2020.4.5     指导老师       修宇 [实验目的 ...

  7. 实验四 Python综合实践

    课程:<Python程序设计> 班级:1843 姓名:章森洋 学号:20184307 实验教师:王志强 实验日期:2020年5月16日 必修/选修: 公选课 1.实验内容 此处填写实验的具 ...

  8. 20172314 Android程序设计 实验四

    课程:<程序设计与数据结构> 班级: 1723 姓名: 方艺雯 学号:20172314 实验教师:王志强 实验日期:2018年5月30日 必修/选修: 必修 1.实验内容及要求 (1)An ...

  9. .NET程序设计实验四

    实验四  文件操作 一.实验目的 1. 掌握窗口控件的使用方法: 2. 掌握文件系统的操作方法.File 类和 Directory类的使用. 二.实验要求 根据要求,编写 C#程序,并将程序代码和运行 ...

  10. 『嗨威说』算法设计与分析 - PTA 程序存储问题 / 删数问题 / 最优合并问题(第四章上机实践报告)

    本文索引目录: 一.PTA实验报告题1 : 程序存储问题 1.1 实践题目 1.2 问题描述 1.3 算法描述 1.4 算法时间及空间复杂度分析 二.PTA实验报告题2 : 删数问题 2.1 实践题目 ...

随机推荐

  1. 实现一个简单的在浏览器运行Dotnet编辑器

    之前已经实现过Blazor在线编译了,现在我们 实现一个简单的在浏览器运行的编辑器,并且让他可以编译我们的C#代码, 技术栈: Roslyn 用于编译c#代码 [monaco](microsoft/m ...

  2. pycharm软件的基本使用、python的注释语法、变量与常量、变量的命名风格、垃圾回收机制、数据类型、数据类型之整型、数据类型之浮点型

    一.pycharm软件的基本使用 修改主题背景 修改字体大小 切换解释器 如何新建python文件 创建后缀是py的文件 注意:pycharm的语言 一定要使用英文的 二.python语法注释 (1) ...

  3. Android面试-字节一面

    距离上次跳槽已经过了3年多,突然看到字节的HR来捞.想着自己好久没面了,就打算去试试看. 0. 准备 视频面试,不用去现场真的太赞了.由于项目比较忙,自己又不是特别想跳槽,所以没怎么准备.面试当天看了 ...

  4. el-input 限制只能输入正整数

    1.前端页面 <el-row :gutter="20"> <el-col :span="20"> <el-form-item la ...

  5. MongoDB Compass的安装及使用图文说明(非常详细)

    1.下载 MongoDB Compass 预编译二进制包下载地址:https://www.mongodb.com/try/download/compass 2.安装 MongoDB Compass 的 ...

  6. ROS入门:服务

    服务端实现一个加法,将结果反馈给客户端 客户端将要计算的和的两个数发给服务的. 1.自定义服务数据 创建一个srv文件:AddTwoInts.srv int64 a int64 b --- int64 ...

  7. XML02

    组成部分: 1. 文档声明 1. 格式: 2. 属性列表: * version:版本号,必须的属性 * encoding:编码方式.告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1 * ...

  8. 交叉熵损失CrossEntropyLoss

    在各种深度学习框架中,我们最常用的损失函数就是交叉熵,熵是用来描述一个系统的混乱程度,通过交叉熵我们就能够确定预测数据与真实数据的相近程度.交叉熵越小,表示数据越接近真实样本. 1 分类任务的损失计算 ...

  9. Vue框架:9,Vue3的用法,setup函数,ref和reactive,计算属性和监听属性,生命周期,toRefs,script setup的作用和lang,Vue后台管理模板

    目录 前端开发之Vue框架 一.Vue3 1.Vue3创建项目 2.setup函数 3.ref和reactive 4.计算属性和监听属性 5.生命周期 6.toRefs 7.script setup的 ...

  10. JZOJ 3469. 【NOIP2013模拟联考7】数列(sequence)

    \(\text{Solution}\) 明显的 \(\text{K-D Tree}\) 基操题 提前给出了数列,那么考虑提前建好树,省去重构 但还是要开 \(O\) \(\text{Code}\) # ...