拯救海龟宝宝_Python第一人称射击模拟游戏浅析
2021繁忙的暑假过去了。金秋时节即将来临,虽然9月14号的秋老虎还在逞威,但已是强弩之末。这一天,本来是想学习新的知识,但一想到很久没有原创一个Python作品了,于是就有了这个小作品。它运行后显示的运行效果如上所示。
我们只要不断地学习新知识,不断地广泛涉猎,总会有新的想法,然后试图用Python去实现,这样就能做非常多的有趣的事情。想想吧,能创造出一个世界上本不存在的东西,这足已经是非常有成就感的事情了。最可惜的是时间不够用而已,所以看到此文章的人,一定要珍惜时间。时间才是这个世界最宝贵的东西。
这个新的作品主要用turtle模块制作,配音用的是pygame的混音器。因为是基于单击事件和鼠标移动事件实现的,所以它并没有像pygame制作游戏一样有一个游戏主循环。虽然有少量的for循环,但总体来讲是一个顺序结构。
运行程序后,玩家以第一人称的视角去操控手枪,单击发射子弹,发射的子弹会在背景上留下弹痕。这个所谓的弹痕,其实是海龟盖的一个灰色的图章和一个黑色的小图章。如果单击到海龟,海龟会被击毁,并且留下血迹。每次可以发射十颗子弹,如果发射完了,需要按鼠标右键单击装弹。
我把这个作品主要分为四个部分。
第一部分是序幕。会显示标题等信息,运行后会有一只小海龟。它主要会画一个靶子和一个瞄准器。这部分代码学过Python的人都应该能编写出来。
第二部分是画好的瞄准器竟然可以用鼠标指针操作它。在Python的海龟画图中,如何用鼠标指针去操作一个对象呢?turtle模块中并没有鼠标移动事件的设定,但是只要我们肯下功夫,去阅读turtle.py文件的源代码,那么问题就不难解决了。它是基于tkinter开发的,所以只要用画布绑定鼠标移动事件
第三部分就是邪恶的海龟不断产生的过程,同时玩家可以去单击它。单击到它,它就会被彻底清除并且显示一个血迹图片。这张图片会显示一定的时间后自动清除,这是通过ontimer命令实现的。关于这个命令,它能实现模拟异步执行,这样能轻松实现“多线程”。安装Python后,有帮助文档,可以查看ontimer的具体用法,所以这里无需赘述。
最后一个部分是成功与结束的设计。成功击中20只邪恶海龟,那就会显示一个动画,而后又有渐显的背景。渐显的背景可以通过图形处理实现,但增加了代码的复杂度。为了让代码尽量简单,采用的是切换图片实现的。当然,前提是先准备好不同模糊度和透明度的背景图片。背景寓意还是比较明显的。
一个作品没有配音,是缺少灵魂的。比如,人们看恐怖电影时觉得非常害怕,其实很大程度上只是音效的衬托。一个电子游戏也是一样,所以特别地花了时间去找音效,还找了一首震撼的背景音乐。它们的播放都是通过pygame模块的混音器实现的。东西在对的地方才能发挥最大的价值,希望这个Python作品能给你有所启发。现代社会,大多数人是没有辩识能力的的。如果你生活在新闻联播,那么基本是在社会的底层。在大数据时代,大众更容易迷失在信息海洋里,因为对信息的判断和抉择上越来越难。我们的社会并没有变得越来越简单,反而是在各个方面越来越复杂。比如,支付手段的多样化,造成了新的社会鸿沟。比如,人类需要越来越长的时间学习人类自己设定的繁多的规则。比如我们经常会被动接收到很多无效的垃圾信息。最典型的是台风消息,我们这里是萍乡,江西最西部,根本没必要知道台风的消息。可是,每次台风,都被动地知道了这消息,其实台风到了我们萍乡早就变成了微风了。现实中,还有很多的垃圾信息到处飞,充满了每个角落。抖音里的最多,人们满足于暂时的快感,熬夜也要躺刷,这就是消耗生命。即,人们的“不知道权”被不断地侵犯。也就是说,我本来不想知道的,却被动地知道了,甚至影响到了我的生活与工作,而这些事情根本不需要知道还更好。如果意识到了以上我所说的这些,那赶紧加入到学习专业知识的大军来吧,只有这样才能更好地理清这个社会。但是,无论学什么,做什么都是身体第一,所以到点了就要关掉手机,睡觉,否则泯然众人矣。
发表评论