e1
代码阅读
# Ensure all assets are accessed in an OS independent way
<div markdown="1" style="margin-top: -30px; font-size: 0.75em; opacity: 0.7;">
:material-circle-edit-outline: 约 371 个字 :fontawesome-solid-code: 12 行代码 :material-clock-time-two-outline: 预计阅读时间 1 分钟
</div>
# Never hardcode a filename!
current_directory = Path('.')
background_image = current_directory / 'assets' / 'mario_background.png'
确保能够跨平台,不同 OS 的路径表达可能不一样
在 Python 中,每个文件(也称为模块)都有一个特殊变量 name。
- 如果这个脚本是被直接运行的(例如,在命令行中执行 python draw_background.py),那么 name 的值就是 "main"。
- 如果这个脚本是被其他脚本导入的(例如,import draw_background),那么 name 的值就是模块的名称(例如 "draw_background")。
这是一种常见的 Python 编程模式,用于区分脚本是被直接运行还是被导入。
这样做的好处是:
- 当你想要重用这个脚本中的函数或类时,可以通过 import 将其导入到其他脚本中,而不会自动执行 main() 函数,避免不必要的代码执行。
- 当你直接运行这个脚本时,main() 函数会被调用,程序按预期开始运行。
pygame.Rect
用于表示矩形区域,它定义了矩形的 位置 和 尺寸,常用于处理图形对象的绘制和碰撞检测
Rect(254, 13, 42, 49)
从左往右依次为 矩阵左上 x 左边、左上 y 坐标、宽度、高度
blit
用于绘制图像的函数,作用是将一个图像(源图像)绘制到另一个图像(目标表面)上
surface.blit(source, dest, area=None)
,area 在源图像中指定的矩形区域,仅绘制该部分。
从 y = 60 开始,每隔 20 个像素遍历一次,直到 size_y。