python外星人入侵游戏代码大全-Python外星人入侵游戏开发—重构键盘鼠标响应代码...

61b5f586-32d2-4aac-9ada-add77e379316.gif

用法分析

在大型项目中,经常需要在添加新代码前重构既有代码。重构旨在简化既有代码的结构,使其更容易扩展。在本节中,我们将创建一个名为game_functions 的新模块,它将存储大量让游戏《外星人入侵》运行的函数。通过创建模块game_functions ,可避免alien_invasion.py太长,并使其逻辑更容易理解。

将check_events() 和update_screen放在一个名为game_functions 的模块中

代码实例

#======================================================

#功能:game_functions类

#作者:python小哥#时间:2020-7-5

#微信公众号:DJXY00001

#微信名称:Python提升课堂#Version:1.0

#======================================================

import sysimport pygamedef check_events():"""响应按键和鼠标事件"""for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()def update_screen(ai_settings, screen, ship):"""更新屏幕上的图像,并切换到新屏幕"""# 每次循环时都重绘屏幕screen.fill(ai_settings.bg_color)ship.blitme()# 让最近绘制的屏幕可见pygame.display.flip()

这个模块中导入了事件检查循环要使用的sys 和pygame 。当前,函数check_events() 不需要任何形参,其函数体复制了alien_invasion.py的事件循环。

下面来修改alien_invasion.py,使其导入模块game_functions ,并将事件循环替换为对函数check_events() 的调用。屏幕更新代码替换为update_screen函数。

#======================================================#功能:alien_invasion类

#作者:python小哥#时间:2020-7-5

#微信公众号:DJXY00001

#微信名称:Python提升课堂#Version:1.0

#======================================================

import pygamefrom settings import Settingsfrom ship import Shipimport game_functions as gfdef run_game():--snip--# 开始游戏主循环while True:gf.check_events()gf.update_screen(ai_settings, screen, ship)

其中--snip--代表延续前节的内容。

在主程序文件中,不再需要直接导入sys ,因为当前只在模块game_functions 中使用了它。出于简化的目的,我们给导入的模块game_functions 指定了别名gf 。

代码运行输出:

cc243836-4a6e-4de6-835d-113afc6084e2.png

我们一开始只想使用一个文件,因此没有立刻引入模块game_functions 。这让你能够了解实际的开发过程:一开始将代码编写得尽可能简单,并在项目越来越复杂时进行重构。

对代码进行重构使其更容易扩展后,可以开始处理游戏的动态方面了!

说明:关注本公众号,回复数字,得对应年月讲解案例的所有代码,规则为年的后两位+月份

如:2002,代表2020年2月,2003,代表2020年3月,依此类推(代码从2020年2月开始,截止目前月份的上一个月为止)

0ba9f490-47ea-41e2-9328-08ba909212bb.jpg

长按二维码

查看更多吧

644c9e0c-5519-4370-866a-223f438c4aaa.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值