20193102 2019-2020-2 《Python程序设计》实验x报告
课程:《Python程序设计》
班级: 1931
姓名: 李潇敏
学号:20193102
实验教师:王志强
实验日期:2020年6月10日
必修/选修: 公选课
1.实验内容
一开始看到这个题目我就想制作一个游戏,在观看完云班课里flappy bird小游戏的讲解后,对我想做的游戏有了一个想法,一开始想做类似i wanna的闯关游戏,但是由于在之后的编码中遇到“跳跃”不好处理,还有因为我所能做的比较粗糙并不能很细节的处理游戏,如果要处理细节需要把屏幕分为很多块,再对每一个块进行处理,由于能力不足因此最终制作了迷宫游戏。大致就是让游戏角色经过障碍到达终点的简单小游戏。
2. 实验过程及结果
-
第一个步骤就是让我所创建的游戏角色可以通过键盘控制移动。我首先根据云班课上的视频“创建”了角色,即通过相对路径将图片引入screen。为了满足角色大小、背景透明等要求,经历一番波折我成功创建第一个角色“火柴人”,但在随后的查找资料中,我找了一个有多种样子的机器人,可以和云班课里的小鸟一样动起来,至此角色确定成功。在查资料的过程中通过键盘操控角色移动并不困难,图片和代码如下:
第一个游戏角色,可以通过键盘移动
最终的机器人
左键控制移动的代码,其他类似 -
第二个步骤是背景地图的制作。如何在地图中设置障碍,最开始我想的是模仿云班课中通过插入图片的方式增加障碍,但是通过寻找简单的办法我发现可以直接设置地图,而且可以还可以在屏幕中的格子里填充图片,很好的解决了地图的问题。如下图,0代表可以通过,1代表不能通过。
-
第三个问题是终点的判定和结束游戏。重点的判定很好做,就像上一步说的在格子里填充不一样的判定图标就可以了。结束游戏可以通过让结束游戏的标志覆盖画面实现。
-
最终的成果,直接上图
以上就是实验的全部内容。
3. 实验过程中遇到的问题和解决过程
- 问题1:地图如何制作
- 问题1解决方案:将屏幕分为多个小块,通过0,1代表地图的障碍和通道,这样不仅不用一个个插入障碍,而且不用编写触碰障碍结果的代码,高效完成地图制作。
- 问题2:通过键盘控制角色移动
- 问题2解决方案:第一次查阅资料的时候发现用键盘控制并不难,但是有个小问题是一直按键盘时不能使角色一直移动,即一次操作移动一格,之后深度了解才发现解决办法,具体在上图的代码里
- 问题3:角色在静止、上下左右移动时如何实现不同的动作。
- 问题3解决方案:在云班课里视频讲过通过多个图案的交替实现角色动起来。一开始由于没有角色多个样子的素材,一度想放弃制作会动的角色,但在查询资料的时候无意中发现了多中样子,甚至静止时也多种形态的机器人,就决定选他做游戏角色,之后看了好多博客最终解决了通过判定不同状态(静止还是向不同方向移动)下不同的图片切换。
全课总结
最开始报python选修也是很忐忑的,毕竟我之前没有接触过编程语言的学习,但开始上课后没有了忐忑却充满了惊奇。因此老师跟多的时以自学为主,通过观看云班课中的视频自学完成内容,之所以没有忐忑是因为视频中的讲解清晰明了,我可以此每次顺利完成作业。回顾整学期,循环、列表、类、元组、函数等等我都熟悉了知识点,而且每次作业虽然会遇到困难,但是通过自己查资料解决也使我有了自主学习的能力和解决问题的能力。我还是很喜欢老师这样的教学方式的,因为我现在越来越体会到自学的重要性,老师不是一直存在的,通过自己的资源和能力获取知识才是最可靠的。我没有更多的建议可以告诉老师,希望老师可以继续这样教学下去,通过独特的教学方式也让之后报这门选修的同学们领悟到自学的重要。
最后说一下这次实验的感想吧,这次实验其实我是完全自学的,游戏中很多的点都是云班课里没有讲过的,但好在互联网的发达看博客,看知乎就足以我去解决问题。很感谢记笔记的自己,之前的知识我也通过笔记运用到了这次实验中。