无法使用Pygame更改单个像素

时间:2019-06-20 01:28:52

标签: python pygame

我尝试了很多方法来更改Pygame中的像素,但没有一种与我合作...

import pygame
import random

width = 640
height = 400
screen = pygame.display.set_mode((width, height))
clock = pygame.time.Clock()
running = True

while running:
    x = random.randint(0, width-1)
    y = random.randint(0, height-1)
    red = random.randint(0, 255)
    green = random.randint(0, 255)
    blue = random.randint(0, 255)
    screen.set_at((x, y), (red, green, blue))
    clock.tick(10)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
            pygame.display.flip()
            clock.tick(240)

什么也没有发生,只有黑屏,直到我关闭它。

1 个答案:

答案 0 :(得分:3)

您似乎在关注this tutorial,但是您在错误的位置上缩进了一些必要的代码。请记住,Python是对空格敏感的;缩进很重要!

最后两行不应位于for循环块内,而应位于while循环块内。

while running:
    # code that draws pixel

    pygame.display.flip()
    clock.tick(240)

这些行会更新显示内容并计算帧之间的时间。

在if语句内部,只有在触发pygame.QUIT事件后,像素才会被绘制。