当前位置: 首页 > news >正文

吉林省长春市长春网站建设哪家好盐城网站建设有限公司

吉林省长春市长春网站建设哪家好,盐城网站建设有限公司,收到网站建设账务处理,微购物网站建设目录 前言 一、为什么要重构模块 二、创建game_functions 三、创建update_screen() 四、修改alien_invasion模块 五、课后思考 总结 前言 前两天我们已经成功创建了窗口,并将小蜜蜂放在窗口的最下方中间位置,本来以为今天将学习控制小蜜蜂,结…

目录

前言

一、为什么要重构模块

 二、创建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_setting=settings.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_setting,ship.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_setting=settings.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的功能?可以吸取颜色,改变背景色?这个其实觉得有可能实现,但是改变图片背景色,那还要抠图,觉得不大可能,本着好学的精神,在网上查询下,可以使用第三方库来改变图片的颜色,至于效果怎么样也就不试了,跟本次案例关系不大,以后有需要再试。但是改变背景色为图片背景色有难度,没有发现提取图片颜色的方式,难道用肉眼看?

 总结

 今天在游戏的进程上没有突破,但是也体会了大项目的流程。

http://www.yayakq.cn/news/9507/

相关文章:

  • 网站要能被搜到需要做推广嘛阿里云虚拟机怎么做多个网站
  • 典型的o2o网站有哪些触屏版网站设计
  • 旅游电子商务网站建设的流程室内设计可以去哪些公司
  • 深圳松岗做网站上海中学分数线
  • 哈尔滨建设网站门户去除tag wordpress
  • 承德网站设计公司群晖套件wordpress
  • 网站建设有关图片重点实验室网站建设方案
  • 网站建设的软文素材网站开发成本如何入账
  • 网站策划书免费谈谈设计和建设网站体会
  • 服务器iis添加网站网站建设与维护的内容
  • js素材网站网站强制分享链接怎么做的
  • 免费的网站建设有哪些辣妹子影院电视剧免费播放
  • 网站建设套餐有哪些内容广东省住房和城乡建设厅官网网址
  • 网站建设与网页设计考试题学校官网页面设计
  • 泰安网站seo抖音代运营是干嘛的
  • 营销型网站价格典当行网站
  • wordpress可以建站吗4399网站开发
  • 校园网站设计方案微网站和wap
  • 玉溪做网站在百度上怎么发布广告
  • html5绿色的房地产手机网站模板源码如何自己编写一个程序
  • 任家房网站建设厦门网站流量优化价格
  • 网站维护 案例做企业网站的流程
  • ppt模版模板免费网站wordpress免费教育模板下载地址
  • 网站 工作室 建设 方案网站建设时间安排
  • 郑州做食用菌配送的网站怎样提高网站点击率
  • 外贸网站制作策划wordpress怎么登
  • 做商城网站需要备案什么域名抖音代运营话术模板
  • 源码屋整站源码首页官网
  • 网站毕业设计答辩问题无代码开发原理
  • 首钢建设集团山东公司网站网络推广有前途吗