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

最新文章

  1. 非常有趣的Console
  2. androud 自定义属性
  3. python中的迭代与递归
  4. POJ2230Watchcow[欧拉回路]
  5. C++11 feature: move constructor
  6. 转载:有关SQL server connection Keep Alive 的FAQ(3)
  7. Android热修复
  8. PHP 页面编码声明方法详解(header或meta)
  9. noproguard.classes-with-local.dex
  10. amazeui tab 监听当前选项
  11. java对象和json对象之间互相转换
  12. Python3 下实现 Tencent AI 调用
  13. selenium IDE工具页面介绍!
  14. js求两个数组的交集|并集|差集|去重
  15. 单片机的基本构成、工作原理 LET′S TRY“嵌入式编程”: 1 of 6
  16. 咏南WEB APP开发框架
  17. idea tomcat上传图片,无法显示的问题解决
  18. JAVA设计模式详解(五)----------适配器模式
  19. CreateThread与_beginthread, _beginthreadex创建线程的基本概念和区别
  20. Linux环境下Redis安装配置步骤[转]

热门文章

  1. 逆天的Zstack-工控机上测试
  2. vue组件的对象式写法,vue中的h函数
  3. 郁金香5 分析游戏内npc 数据
  4. C语言-三子棋项目
  5. sqllabs靶场less1-4
  6. 东方CannonBall
  7. JZOJ 4299. 【NOIP2015模拟11.2晚】舳舻牌
  8. CF1358D The Best Vacation
  9. 前端开发工具VsCode官网下载太慢?直接失败?
  10. SQL 注入之一:Mysql 数据库(搞懂这篇就够了)