我不明白怎么回事屏幕填充()工程

2024-03-28 19:30:18 发布

您现在位置:Python中文网/ 问答频道 /正文

屏幕填充应该改变背景颜色。但是如果我在屏幕填充之前画了什么东西,它就不会出现,但是如果我在它之后画了什么东西,那么它和更新的背景色配合得很好。 我说的两个代码: 在循环中(在循环之前i被初始化为0):

pygame.draw.rect(screen, (255-i, i, 0),`pygame.Rect(30,30,60,60)`
i=(i+1)%255
screen.fill((0, 0, 0))

此代码显示黑屏

screen.fill((0,0,0))
pygame.draw.rect(screen, (255-i, i, 0), `pygame.Rect(30,30,60,60)`
i=(i+1)%255

这很有效。为什么会这样?你知道吗


Tags: 代码rect屏幕颜色fillscreenpygame背景
1条回答
网友
1楼 · 发布于 2024-03-28 19:30:18

在代码的某个点上应该有一个pygame.display.update()调用,理想情况下,它应该是主循环的最后一行。可能在其他地方,但应该在你的片段之后。这是在你的电脑屏幕上实际绘制的命令

类似于pygame.draw模块或pygame.fill的函数绘制在内表面(存储在pc内存中的对象)。你可以想象他们只是编辑一个2D数组,数组中的每个元素都是一个3或4长的元组,存储像素的RGB或RGBA颜色。
在调用pygame.display.update()之前,屏幕上实际上不会显示任何内容。基本上pygame.display.update()读取2D数组,并在调用pygame.display.update()时根据2D数组中的值相应地更改屏幕像素。你知道吗

这意味着在以下代码段中:

pygame.draw.rect(screen, (255-i, i, 0),`pygame.Rect(30,30,60,60)`
i=(i+1)%255
screen.fill((0, 0, 0))

首先绘制矩形,然后用黑色填充整个屏幕,然后在代码调用pygame.display.update()时在pc屏幕上显示最终结果(黑屏)。没有机会看到矩形。你知道吗

相反

screen.fill((0,0,0))
pygame.draw.rect(screen, (255-i, i, 0), `pygame.Rect(30,30,60,60)`
i=(i+1)%255

在这里,您首先用黑色填充屏幕,然后绘制矩形,然后显示最终结果,即黑色背景和彩色矩形。你知道吗

相关问题 更多 >