我刚刚开始学习Pygame。我正在关注this教程。 我运行了以下程序,但它显示的是黑色而不是蓝色:
import pygame
h = input("Enter the height of the window : ")
w = input("Enter the width of the window : ")
screen = pygame.display.set_mode((w,h))
running = True
while running:
event = pygame.event.poll()
if event.type == pygame.QUIT:
running=0
screen.fill((0,0,1))
pygame.display.flip()
答案 0 :(得分:6)
对于蓝色,您应该使用255
作为元组中的第三个元素,而不是1
。
示例 -
while running:
event = pygame.event.poll()
if event.type == pygame.QUIT:
running=0
screen.fill((0,0,255))
pygame.display.flip()
答案 1 :(得分:0)
它显示为黑色,因为在游戏循环后您正在运行screen.fill()。这意味着它将仅在您完成播放后填满屏幕。 最佳实践是将其放置在循环中的某个位置,然后再绘制任何要绘制的精灵-这样,如果精灵移动,其旧位置将被背景着色。
此外,如其他答案所述:(0,0,1)是黑色,带有最淡的蓝色提示。谷歌搜索“ RGB拾色器”可以找到一个不错的RGB拾色器。
最后,您应该将“ event = pygame.event.poll()”更改为“用于pygame.event.get()中的事件”,如图所示,因为这将允许它同时检测多个事件。显然,该示例不是必需的,但我认为不会将其保留为只能关闭的蓝屏。
import pygame
pygame.init()
h = input("Enter the height of the window : ")
w = input("Enter the width of the window : ")
screen = pygame.display.set_mode((w,h))
running = True
while running:
for event in pygame.event.poll():
if event.type == pygame.QUIT:
running=0
#any additional event checks
screen.fill((0,0,255))
#any additional drawings
pygame.display.flip()
pygame.quit()