Python小游戏——外星人入侵(保姆级教程)第一章 05


系列文章目录

第一章:武装飞船

05:重构:模块game_functions

一、重构

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

在添加新代码前重构现有代码,可以简化代码结构,使其更容易扩展!!!

二、代码及演示

(笔记在代码的注释中!!!)

1.模块game_functions

在与文件: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

image

2.修改alien_invasion

修改文件: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()
# 代码重构完成

image

3.运行效果

image

有什么不懂的地方在评论区留言哦!希望我的文章能对你有所帮助,如果喜欢我的文章,请点赞收藏并关注!你的认可是对我创作最大的鼓励!

2022-08-21 12:30:32 星期日

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/python/281387.html

(0)
上一篇 2022年8月21日 14:19
下一篇 2022年8月21日 16:08

相关推荐

发表回复

登录后才能评论