在大型项目中,经常需要在添加新代码前重构既有代码。重构旨在简化既有代码的结构,使其更容易扩展。在本节中,我们将创建一个名为game_functions的新模块,它将存储大量让游戏《外星人入侵》运行的函数。通过创建模块game_functions,可避免alien_invasion.py太长,并使其逻辑更容易理解。
在添加新代码前重构现有代码,可以简化代码结构,使其更容易扩展!!!
(笔记在代码的注释中!!!)
在与文件:alien_invasion.py同一文件夹下创建
文件game_functions.py
#渗透小红帽python的学习之路 #外星人入侵小游戏 #game_functions.py #存储让游戏运行的函数 import sys import pygame def check_events(): #响应按键和鼠标事件 for event in pygame.event.get(): # 监听键盘和鼠标事件 if event.type == pygame.QUIT: sys.exit() #修改alien_invasion.py,使其导入game_functions #并将事件循环替换为对函数check_events()的调用 def update_screen(ai_settings,screen,ship): # 将更新屏幕的代码移到此处 screen.fill(ai_settings.bg_color) # 每次循环都会重绘屏幕 ship.blitme() # 每次循环时重新绘制飞船 pygame.display.flip() # 让最近绘制的屏幕可见 # 然后修改alien_invasion.py
修改文件:alien_invasion.py
#渗透小红帽python的学习之路 #外星人入侵小游戏 #创建pygame窗口以及响应用户输入 import sys #模块sys用来退出游戏 import pygame from settings import Setting #导入刚创建的设置类 from ship import Ship #导入管理飞船行为的类 import game_functions as gf def run_game(): pygame.init() #初始化屏屏幕对象 ai_settings = Setting() # 创建Setting类的实例,并存储在ai_settings变量中 screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height)) #创建显示窗口 pygame.display.set_caption("Alien Invasion") ship = Ship(screen) #绘制一艘飞船 #开始游戏主循环 while True: gf.check_events() gf.update_screen(ai_settings,screen,ship) run_game() # 代码重构完成
有什么不懂的地方在评论区留言哦!希望我的文章能对你有所帮助,如果喜欢我的文章,请点赞收藏并关注!你的认可是对我创作最大的鼓励!
2022-08-21 12:30:32 星期日