2017-01-26 58 views
1

我最近开始学习pygame。我做了一个非常基本的程序(它是所有改变它自己的背景色):Pygame Surface.fill()不工作

import pygame 
from pygame.locals import * 

pygame.init() 
DISPLAY = pygame.display.set_mode((800,600)) 


while True: 
    for event in pygame.event.get(): 
     if event == QUIT: 
      pygame.quit() 
      sys.exit() 
    DISPLAY.fill((3,4,5)) 
    pygame.display.update() 

然而,当程序运行它所作的只是产生一个空白,黑色pygame的窗口。我正在使用python 3.5.2和pygame 1.9.1的Windows 10 64位版本。请帮我弄清楚为什么该程序不起作用?

回答

3

它工作正常,你只是使用非常深的颜色(R = 3/255,G = 4/255,B = 5/255)。试试这个得到一个蓝色屏幕:

DISPLAY.fill((0,0,255)) 

documentationSurface.fill

fill(color, rect=None, special_flags=0) -> Rect 

...

颜色参数可以是一个RGB序列,RGBA序列或映射的颜色索引。

RGB值的每个分量的范围为0到255,其中255表示该分量的最大强度。纯黑色将表示为(0, 0, 0),白色表示为(255, 255, 255)


为了更好的演示(或有趣),你可以使用这个程序来得到什么背景颜色的想法,你可以从不同的RGB值获得:

from itertools import product 

import pygame 
import sys 

pygame.init() 
DISPLAY = pygame.display.set_mode((200, 200)) 

for r, g, b in product(range(0, 255, 16), repeat=3): 
    print('r={}, g={}, b={}'.format(r, g, b)) 
    DISPLAY.fill((r, g, b)) 
    pygame.display.update() 
    pygame.time.delay(10) 

pygame.quit() 
sys.exit() 
+0

谢谢你这么多!你的回答解决了我的问题! – Tookie345