作为初次接触程序设计的我在看到云班课中用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. Vue30 过度与动画

    1 简介 Vue封装的过度与动画,插入.更新或者移除 DOM 时,在合适的时候给元素添加样式类名,达到应用过渡和动画效果. 2 vue内置的样式 Vue在元素显示与隐藏的过渡中,提供了 6 个 cla ...

  2. Vue15 v-for和key的作用及原理

    部分转自https://blog.csdn.net/cun_king/article/details/120714227 1 v-for指令 1.1 简介 用于遍历. 当在组件中使用 v-for 时, ...

  3. python3使用requests模块发https请求,提示caused by ssl error, can't connect to https url because the ssl module is not available

    Q: python3使用requests模块发https请求,提示caused by ssl error, can't connect to https url because the ssl mod ...

  4. TCP/IP协议(5): IP(Internet Protocol) 协议 —— 连接各个网络的协议

    TCP/IP协议(5): IP(Internet Protocol) 协议 -- 连接各个网络的协议 关于 IP(Internet Protocol) 协议 IP(Internet Protocol) ...

  5. JZOJ 4895【NOIP2016提高A组集训第16场11.15】三部曲

    题目 对于 \(50%\) 的数据,\(1<=n<=1000,1<=p<=300\) 对于 \(100%\) 的数据,\(1<=n<=50000,1<=p&l ...

  6. 三天吃透MySQL八股文(2023最新整理)

    本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...

  7. 化学式latex语法

    $2 CO_2 \stackrel{光}{\underset{\text{催化剂}}{\longrightarrow}}2 Fe + 3 CO_2$ $\ce{CO2}$ $\ce{CU2+}$ $\ ...

  8. LeetCode-1609 奇偶树

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/even-odd-tree 题目描述 如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 : 二叉 ...

  9. 如何在 JavaScript 中使用媒体查询

    前言 说起媒体查询想必大家最先想到的都是CSS中@media,没错,这是我们最常用的媒体查询方法,主要用来为我们的网站做适配处理. 比如: h1 { font-size: 2rem; color: g ...

  10. python sys.argv(全局文本索引替换)

    #利用sys.argv(实现从程序外部向程序传递参数.)写一个脚本.#全局替换(old_str to new_str,filename)import sys #导入sys模块print(sys.arg ...