作为初次接触程序设计的我在看到云班课中用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. 【一句话】:first-child 伪类解释

    关键词 不起作用 选不到 失败 解释 input:first-child 要求既是input元素,而且是兄弟节点中的第一个 如果要找第一个input元素,那么用input:first-of-type ...

  2. mysql02-配置文件my.ini

     https://www.cnblogs.com/isme-zjh/p/11542106.html   1.mysql安装-连接   1.1安装 略   1.2连接-退出 连接 mysql –h 主机 ...

  3. freeRTOS检测栈溢出

    将FreeRTOSConfig.h里面的configCHECK_FOR_STACK_OVERFLOW设置为2. 随便一个文件里,加入 #include "task.h" void ...

  4. selenium结合tenacity的retry实现验证码失败重试

    说在前面 验证码登录的demo后续可以单独讲解,VIP学员对这部分应该都是掌握的,此处不再赘述 本文假设了一个场景 你通过OCR识别的验证码是有一定的错误几率的 本文是通过识别后的验证码去加一个随机字 ...

  5. JZOJ 6904. 【2020.11.28提高组模拟】T3 树上询问(query)

    题目 你有一棵 \(n\) 节点的树 ,回答 \(m\) 个询问,每次询问给你两个整数 \(l,r\) ,问存在多少个整数 \(k\) 使得从 \(l\) 沿着 \(l \to r\) 的简单路径走 ...

  6. Ansible-playbook 快速入门到放弃

    Ansible-playbook 快速入门到放弃 隔岸红尘忙似火,当轩青嶂冷如冰. 1-简介 playbook 相当于可以把模块命令都写入到配置文件里面,这样就可以直接执行配置文件了,类似脚本. 2- ...

  7. 题解 P7623 [AHOI2021初中组] 收衣服

    我还在小学的时候以现在初中名义我大五十牛逼参加了这次,然后身败名裂死磕这道题不会,现在觉得自己好傻啊 233333 显然这是要统计每个区间的贡献,所以我们可以打出来这个暴力,统计每个区间的次数,对于 ...

  8. Median String

    You are given two strings ss and tt, both consisting of exactly kk lowercase Latin letters, ss is le ...

  9. node.js 历史版本下载

    https://nodejs.org/zh-cn/download/releases/

  10. Android:遍历视图

    <LinearLayout android:id="@+id/ques2_layout" android:layout_width="match_parent&qu ...