最新消息:

python青少年编程第三季——16、吃鸡联盟之亚瑟开枪(下)

Python 少儿编程 2579浏览 0评论
Python青少年编程第三季

各位小伙伴大家好:

上期我们已经完成了亚瑟开枪的所有功能,那么还有什么好说吗?

 

还有,本来计划使用按键检测来让亚瑟连续开枪,但是发现pygame的按键检测需要初始化一个窗口才能使用,在这里有点不合时宜,我们把按键检测放到后面第四季再和大家分享。

 

这里我的解决办法是通过input函数获取用户输入的方式,来实现我们的设想。(办法有点low)

 

要想让亚瑟连续开枪,如果弹夹里只有一颗子弹这肯定不行。

 

所以,我们第一步就是创建更多子弹,如下图:

 

python青少年编程第三季——16、吃鸡联盟之亚瑟开枪(下)

还记得吗?——是的,for循环。

执行10次,依次创建10颗子弹,每创建一颗就马上装入弹夹。

 

有了子弹,接下来就是获取用户的输入来控制亚瑟开枪。

 

python青少年编程第三季——16、吃鸡联盟之亚瑟开枪(下)

 

我们将整个功能写入一个contor函数里面。代码解释我写在注释里面,大致意思是如果用户输入f,就调用英雄的开枪方法,让亚瑟开枪。

 

需要说明的是第62行,函数里面有两个参数,前面传入英雄,后面的是敌人。

 

为什么一定要将对象作为参数传递给函数呢?

这是因为如果没有这两个参数的话,下面第67行的shoot方法的调用就会出错——提示hero未定义。(可以将参数去掉看看错误类型)

 

接下来就是对主函数的调整:

 

python青少年编程第三季——16、吃鸡联盟之亚瑟开枪(下)

 

第93行,是一个死循环,来让程序不停的执行。

每获取一次用户输入就判断一次敌人的血量和子弹的数量,然后根据结果做出相关的反应。

 

完成了这些,最后我们来看一下运行结果:

 

python青少年编程第三季——16、吃鸡联盟之亚瑟开枪(下)

 

程序运行5次小兵被消灭,正常退出。

 

下面是修改后的完整代码,给大家做个参考:

你可以在此基础做二次、三次开发来让它更好玩,更强大。

 

python青少年编程第三季——16、吃鸡联盟之亚瑟开枪(下)

python青少年编程第三季——16、吃鸡联盟之亚瑟开枪(下)

python青少年编程第三季——16、吃鸡联盟之亚瑟开枪(下)

python青少年编程第三季——16、吃鸡联盟之亚瑟开枪(下)

 

本期就为大家分享到这里,这也是Python第三季的最后一期,我们第四季再见。

转自公众号:
高维数学

您必须 登录 才能发表评论!