Python编程:从入门到实践12.5 重构:模块game_functions_Python编程:从入门到实践12.5 重构:模块game_functions试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Python编程:从入门到实践 > 12.5 重构:模块game_functions

Python编程:从入门到实践——12.5 重构:模块game_functions

在大型项目中,经常需要在添加新代码前重构既有代码。重构旨在简化既有代码的结构,使其更容易扩展。在本节中,我们将创建一个名为game_functions的新模块,它将存储大量让游戏《外星人入侵》运行的函数。通过创建模块game_functions,可避免alien_invasion.py太长,并使其逻辑更容易理解。 12.5.1 函数check_events() 我们将首先把管理事件的代码移到一个名为check_events()的函数中,以简化run_game()并隔离事件管理循环。通过隔离事件循环,可将事件管理与游戏的其他方面(如更新屏幕)分离。 将check_events()放在一个名为game_functions的模块中: game_functions.py import sys import pygame def check_events(): """响应按键和鼠标事件""" for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() 这个模块中导入了事件检查循环要使用的sys和pygame。当前,函数check_events()不需要任何形参,其函数体复制了alien_invasion.py的事件循环。 下面来修改alien_invasion.py,使其导入模块game_functions,并将事件循环替换为对函数check_events()的调用: alien_invasion.py import pygame from settings import Settings from ship import Ship import game_functions as gf def run_game(): --snip-- # 开始游戏主循环 while True: gf.check_events() # 让最近绘制的屏幕可见 --snip-- 在主程序文件中,不再需要直接导入sys,因为当前只在模块game_functions中使用了它。出于简化的目的,我们给导入的模块game_functions指定了别名gf。 12.5.2 函数update_screen() 为进一步简化run_game(),下面将更新屏幕的代码移到一个名为update_screen()的函数中,并将这个函数放在模块game_functions.py中: game_functions.py --snip-- def check_events(): --snip-- def update_screen(ai_settings, screen, ship): """更新屏幕上的图像,并切换到新屏幕""" # 每次循环时都重绘屏幕 screen.fill(ai_settings.bg_color) ship.blitme() # 让最近绘制的屏幕可见 pygame.display.flip() 新函数update_screen()包含三个形参:ai_settings、screen和ship。现在需要将alien_invasion.py的while循环中更新屏幕的代码替换为对函数update_screen()的调用: alien_invasion.py --snip-- # 开始游戏主循环 while True: gf.check_events() gf.update_screen(ai_settings, screen, ship) run_game() 这两个函数让while循环更简单,并让后续开发更容易:在模块game_functions而不是run_game()中完成大部分工作。 鉴于我们一开始只想使用一个文件,因此没有立刻引入模块game_functions。这让你能够了解实际的开发过程:一开始将代码编写得尽可能简单,并在项目越来越复杂时进行重构。 对代码进行重构使其更容易扩展后,可以开始处理游戏的动态方面了! 动手试一试 12-1 蓝色天空:创建一个背景为蓝色的Pygame窗口。 12-2 游戏角色:找一幅你喜欢的游戏角色位图图像或将一幅图像转换为位图。创建一个类,将该角色绘制到屏幕中央,并将该图像的背景色设置为屏幕背景色,或将屏幕背景色设置为该图像的背景色。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《Python编程:从入门到实践》其他试读目录

• 1.1 搭建编程环境
• 1.2 在不同操作系统中搭建Python编程环境
• 1.3 解决安装问题
• 1.4 从终端运行Python程序
• 1.5 小结
• 12.1 规划项目
• 12.2 安装Pygame
• 12.3 开始游戏项目
• 12.4 添加飞船图像
• 12.5 重构:模块game_functions [当前]
• 12.6 驾驶飞船
• 12.7 简单回顾
• 12.8 射击
• 12.9 小结
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •