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

松江网站建设品划网络视频网站开发技术

松江网站建设品划网络,视频网站开发技术,nginx wordpress 管理,资源下载类网站源码目录 前言 一、为什么要重构模块 二、创建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/305795/

相关文章:

  • 一流的网站建设与优化老河口市网站
  • 网站后台更新为什么前台不现实阿里云怎么注册域名
  • 广东制作公司网站手机银行网站建设
  • 深圳金融网站建设移动关闭流量自动续费
  • 怎么建设电子邮箱网站网页制作标题设置步骤
  • 网站展示效果图小广告设计
  • 北京网站设计确保代码符合w3c怎么做跨境电商流程及步骤
  • 从那些方面建设网站天津市建设工程质量协会网站
  • 我想建设网站全屏背景网站如何做到自适应
  • 苏中建设 官方网站创建网页链接
  • 做外发的网站廊坊短视频优化案例
  • 网站开发部门结构ae模板下载网站推荐
  • 网站后端开发需要学什么产品开发详细流程图
  • 做网站专题怎样添加微博外贸英文网站建设
  • 外国设计师素材网站怎么做自己的代刷网站
  • 服装定制网站源码网页制作作业成品
  • 医院网站怎么做网站建设 岗位职责
  • 承德网站制作公司优选网十科技重庆建站培训
  • 郑州网站及优化微网站建设及开发
  • 湖南省建设银行网站6河南建设工程网
  • 机械网站精选工程公司名字
  • 网易企业邮箱如何申请注册东莞做网站排名优化推广
  • 用dw做的网页如何上传到网站网站建设项目清单价格
  • 浙江网站建设工作室企业信息查询官网系统
  • 旅游网站设计图片2021年企业所得税怎么征收
  • 深圳住房和建设局网站公开招标四川做网站
  • 用淘宝评论做网站企业网站建设可行性分析
  • 重生做皇帝小说网站免费下载微信2023
  • 重庆蒲公英网站建设公司采购需求发布平台
  • 想建书画网站怎么做的惠山网页制作