我正在遵循一个非常基础的pygame教程,该教程之前已经完成。我怀疑存在版本问题,尽管我无所适从。
macOS 10.14.4
Python 3.7.2
pip 18.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
代码:
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((800,600))
surf = pygame.Surface((75,25))
surf.fill((125,125,125))
# What does this rect do?
rect = surf.get_rect()
running = True
while running:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
running = False
elif event.type == QUIT:
running = False
screen.blit(surf, (400,300))
pygame.display.flip()
我唯一的问题是该矩形作业是做什么用的?我无法对直肠进行出血,因此它似乎没有任何用途。
我已经阅读了其他几本教程,复制粘贴了代码,每个教程都得到了相同的结果:没有矩形的白色屏幕。好像显示代码可以工作,但是其他任何表面都不会出现。
控制台中没有错误。我现在真的不确定如何调试。
答案 0 :(得分:1)
这里没有要调试的内容。 rect = surf.get_rect()
未使用,也许就像martineau在评论中所说的那样,将在本教程的后面使用。
代码正在做的是在灰色表面上绘制一个小的灰色矩形(这就是为什么看不到任何东西的原因)。
surf = pygame.Surface((75,25))
这将创建一个小的灰色表面,稍后在主循环中的坐标(左上角)400、300处将其变色:
screen.blit(surf, (400,300))
正如我说的,您看不到的原因是因为surf
il充满了灰色(此行):
surf.fill((125,125,125))
,您的背景也是灰色。我不知道这是否与系统有关,在我的Linux上,背景为黑色,矩形清晰可见。
因此,请尝试通过以下操作将矩形的颜色更改为更清晰或更暗的颜色,或在主循环之前用黑色填充显示表面:
screen.fill((0, 0, 0))