python设计游戏的背景_04_游戏背景 — 黑马程序员《Python入门教程完整版》笔记...
游戏背景 黑马程序员《Python入门教程完整版》笔记
— 黑马程序员《Python入门教程完整版》笔记
目标背景交替滚动的思路确定
显示游戏背景
01. 背景交替滚动的思路确定
运行 备课代码,观察 背景图像的显示效果:游戏启动后,背景图像 会 连续不断地 向下方 移动
在 视觉上 产生英雄的飞机不断向上方飞行的 错觉 —— 在很多跑酷类游戏中常用的套路游戏的背景 不断变化
游戏的主角 位置保持不变
1.1 实现思路分析
解决办法创建两张背景图像精灵第 1 张 完全和屏幕重合
第 2 张在 屏幕的正上方
两张图像 一起向下方运动self.rect.y += self.speed
当 任意背景精灵 的 rect.y >= 屏幕的高度 说明已经 移动到屏幕下方
将 移动到屏幕下方的这张图像 设置到 屏幕的正上方rect.y = -rect.height
1.2 设计背景类
初始化方法直接指定 背景图片
is_alt 判断是否是另一张图像False 表示 第一张图像,需要与屏幕重合
True 表示 另一张图像,在屏幕的正上方
update() 方法判断 是否移动出屏幕,如果是,将图像设置到 屏幕的正上方,从而实现 交替滚动继承 如果父类提供的方法,不能满足子类的需求:派生一个子类
在子类中针对特有的需求,重写父类方法,并且进行扩展
02. 显示游戏背景
2.1 背景精灵的基本实现在 plane_sprites 新建 Background 继承自 GameSpriteclass Background(GameSprite):
"""游戏背景精灵"""
def update(self):
# 1. 调用父类的方法实现
super().update()
# 2. 判断是否移出屏幕,如果移出屏幕,将图像设置到屏幕的上方
if self.rect.y >= SCREEN_RECT.height:
self.rect.y = -self.rect.height
2.2 在 plane_main.py 中显示背景精灵在 __create_sprites 方法中创建 精灵 和 精灵组
在 __update_sprites 方法中,让 精灵组 调用 update() 和 draw() 方法__create_sprites 方法def __create_sprites(self):
# 创建背景精灵和精灵组
bg1 = Background("./images/background.png")
bg2 = Background("./images/background.png")
bg2.rect.y = -bg2.rect.height
self.back_group = pygame.sprite.Group(bg1, bg2)__update_sprites 方法def __update_sprites(self):
self.back_group.update()
self.back_group.draw(self.screen)
2.3 利用初始化方法,简化背景精灵创建思考 —— 上一小结完成的代码存在什么样的问题?能否简化?在主程序中,创建的两个背景精灵,传入了相同的图像文件路径
创建 第二个 背景精灵 时,在主程序中,设置背景精灵的图像位置思考 —— 精灵 初始位置 的设置,应该 由主程序负责?还是 由精灵自己负责?
答案 —— 由精灵自己负责根据面向对象设计原则,应该将对象的职责,封装到类的代码内部
尽量简化程序调用一方的代码调用
初始化方法直接指定 背景图片
is_alt 判断是否是另一张图像False 表示 第一张图像,需要与屏幕重合
True 表示 另一张图像,在屏幕的正上方
在 plane_sprites.py 中实现 Background 的 初始化方法def __init__(self, is_alt=False):
image_name = "./images/background.png"
super().__init__(image_name)
# 判断是否交替图片,如果是,将图片设置到屏幕顶部
if is_alt:
self.rect.y = -self.rect.height修改 plane_main 的 __create_sprites 方法# 创建背景精灵和精灵组
bg1 = Background()
bg2 = Background(True)
self.back_group = pygame.sprite.Group(bg1, bg2)
python设计游戏的背景_04_游戏背景 — 黑马程序员《Python入门教程完整版》笔记...相关推荐
- 黑马程序员 python 基础版 哪个老师_(看黑马程序员Python基础班视频挺好,犹豫该不该报班?)...
看黑马程序员Python基础班视频挺好,犹豫该不该报班? 如果看视频比较好的话,还是建议自学吧,毕竟录制视频的老师不一定参与实质的讲课,且能自学也省一笔培训费用了.我是看的bilibili上黑马程序员 ...
- 黑马程序员Flutter入门教程之项目初步创建
使用vscode创建 1.安装vscode 2.vscode中安装插件 在扩展面板输入flutter和dart,进行下载安装,安装完成重启生效 3.创建项目 快捷键ctrl+shift+P,选择flu ...
- 黑马程序员Python教程的代码--摆放游戏
把黑马程序员Python教程的代码跟着老师打了一遍,供大家参考学习. 可直接粘贴以下代码学习,对应课程380-384节 class HouseItem:def __init__(self,name,a ...
- python视频教程黑马-python视频教程免费:求黑马程序员python教程?
python后端开发需要学什么? 第一阶段:Python语言基础 主习Python最基识,如Python3.数据类型.字符串.函数.类件操作等.阶段课程结束后,学员需要完成Pygame实战飞机大战.2 ...
- 黑马程序员 python快速编程入门课后答案_Python快速编程入门课后程序题答案
前言 本文只是简单的整理了一下课后习题的编程题,具体的填空.选择.判断可以见:Python快速编程入门课后习题答案 第一章 1.编写一个Python程序,输出如下图效果. ++++++++++ + ...
- [学习笔记]黑马程序员python教程
文章目录 思维导图 Python基础知识图谱 面向对象 SQL入门和实战 Python高阶技巧 第一阶段 第九章:Python异常.模块与包 1.9.1异常的捕获 1.9.1.1 为什么要捕获异常 1 ...
- python从入门到高阶(基于黑马程序员python教程)
文章目录 0.文章来源 1."学it就来%s%s员"% (name,"程序员") 2.%s:占位字符串.%d:占位整型.%f:占位浮点型 3.字符串格式化的精度 ...
- python3入门与进阶笔记_16_变量进阶 — 黑马程序员《Python入门教程完整版》笔记...
变量进阶(理解) - 黑马程序员<Python入门教程完整版>笔记 目标变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用变量 和 数据 都是保存在 内存 中的 在 Py ...
- python入门教程完整版(懂中文就能学会)-Python入门教程完整版(懂中文就能学会)...
不过小编的内心是强大的,网友虐我千百遍,我待网友如初恋,因为今天又给大家带来了干货,Python入门教程完整版,完整版啊!完整版! 言归正传,小编该给大家介绍一下这套教程了,希望每个小伙伴都沉迷学习, ...
最新文章
- weblogic配置文件学习总结
- python - socket模块1
- web编程 模块1 html,PYcore python programming笔记C20 Web编程
- 【LeetCode笔记】49. 字母异位词分组(Java、字符串、哈希表)
- 深入C++面试题总结
- 有没有用过苹果手机的人,使用后放弃苹果
- 《大道至简》第一章读后感(java伪代码)
- 域控制器的常规卸载,Active Directory系列之十三
- 2019.07.23--运用三W法则初步学习SpringCloud基础知识
- 数学:AI和大数据的基础
- MDCC2013会议笔记
- 配置系统初始化失败0 x84b10001当在Windows上安装SQL Server
- 检测心率的体重心率秤方案开发
- 202130310164
- 互联网IT 校招与内推:软实力的技巧
- Mac 下 Nginx、PHP、MySQL 和 PHP-fpm 的安装和配置
- FPGA_demo2:按键测试
- react + antd pro 项目搭建及发布流程
- 设置静态IP后 mtputty无法连接问题
- [課程筆記] 機器學習2021(李弘毅) L32.概述增強式學習(四)