成立投资公司需要什么条件,seo整站排名,长沙网站seo优化公司,cms做网站不用后端目录 前言
一、为什么要重构模块 二、创建game_functions 三、创建update_screen() 四、修改alien_invasion模块 五、课后思考 总结 前言 前两天我们已经成功创建了窗口#xff0c;并将小蜜蜂放在窗口的最下方中间位置#xff0c;本来以为今天将学习控制小蜜蜂#xff0c;结…目录 前言
一、为什么要重构模块 二、创建game_functions 三、创建update_screen() 四、修改alien_invasion模块 五、课后思考 总结 前言 前两天我们已经成功创建了窗口并将小蜜蜂放在窗口的最下方中间位置本来以为今天将学习控制小蜜蜂结果是重构模块算了我们按照书上步骤一起来学习下。 一、为什么要重构模块 书上说在大型项目中会经常在添加新代码前重构既有的代码。咱也没进过大公司做过大型项目今天也算体验了一把大型项目的流程目的是简化代码结构。具体到我们现在做的案例就是简化alien_invasion文件把里面写的一些功能再用一个函数封装起来然后在alien_invasion里调用使得alien_invasion看起来更简洁逻辑更清晰。我们先来看看alien_invasion里面的代码。 import sys
import pygame
import settings
from ship import Shipdef run_game():pygame.init()new_settingsettings.Settings()screen pygame.display.set_mode((new_setting.screen_width,new_setting.screen_height))ship Ship(screen)pygame.display.set_caption(Alien Invasion)while True:for event in pygame.event.get():if event.type pygame.QUIT:sys.exit()screen.fill(new_setting.bg_color)ship.blitme()pygame.display.flip()run_game() 通过观察代码我们发现在while循环里主要有两件事一件事是监听用户操作另一件事是绘制窗口那么我们就将这两件事分别封装出去。 二、创建game_functions 没啥好说的创建一个类把while循环里面的代码复制过去然后alien_invasion再调用就行了我们先写game_functions的代码。 import sys
import pygamedef check_events():for event in pygame.event.get():if event.type pygame.QUIT:sys.exit() 三、创建update_screen() 书上面并没有创建一个 update_screen的新文件而是在game_functions里定义了update_screen函数那么game_functions不就复杂了吗简化了alien_invasion复杂了game_functions有啥意义。 我们观察上面的代码screen.fill(new_setting.bg_color)调用了screen和new_settingship.blitme()调用了ship所以我们在创建新的函数的时候要将这三个作为传参传进去。 def update_screen(new_setting,screen,ship):screen.fill(new_setting.bg_color)ship.blitme()pygame.display.flip() 四、修改alien_invasion模块 现在我们只需要导入game_functions然后调用里面的函数就行了。 import pygame
import settings
from ship import Ship
import game_functions as gfdef run_game():pygame.init()new_settingsettings.Settings()screen pygame.display.set_mode((new_setting.screen_width,new_setting.screen_height))ship Ship(screen)pygame.display.set_caption(Alien Invasion)while True:gf.check_events()gf.update_screen(new_setting,screen,ship)run_game() 我们来运行一下看能否成功。 没问题成功的 五、课后思考 “大蟒蛇”在这里提出了一个问题“找一个喜欢的游戏角色放在屏幕中间然后将屏幕背景色变为图片的背景色或者将图片的背景色变成屏幕背景色” 看到这个问题我首先想到的是python可以实现ps的功能可以吸取颜色改变背景色这个其实觉得有可能实现但是改变图片背景色那还要抠图觉得不大可能本着好学的精神在网上查询下可以使用第三方库来改变图片的颜色至于效果怎么样也就不试了跟本次案例关系不大以后有需要再试。但是改变背景色为图片背景色有难度没有发现提取图片颜色的方式难道用肉眼看 总结 今天在游戏的进程上没有突破但是也体会了大项目的流程。