MacOs上的pygame将不会显示任何表面

时间:2019-05-26 14:03:43

标签: python pygame surface

我正在遵循一个非常基础的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()

我唯一的问题是该矩形作业是做什么用的?我无法对直肠进行出血,因此它似乎没有任何用途。

我已经阅读了其他几本教程,复制粘贴了代码,每个教程都得到了相同的结果:没有矩形的白色屏幕。好像显示代码可以工作,但是其他任何表面都不会出现。

empty pygame display

控制台中没有错误。我现在真的不确定如何调试。

1 个答案:

答案 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上,背景为黑色,矩形清晰可见。

screenshot

因此,请尝试通过以下操作将矩形的颜色更改为更清晰或更暗的颜色,或在主循环之前用黑色填充显示表面:

screen.fill((0, 0, 0))