首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pygame Surface.fill()不工作

Pygame Surface.fill()不工作
EN

Stack Overflow用户
提问于 2017-01-26 12:34:40
回答 1查看 9.3K关注 0票数 2

我最近开始学习游戏。我做了一个非常基本的程序(它所做的只是改变它自己的背景颜色):

代码语言:javascript
运行
复制
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()

然而,当程序运行时,它所做的只是生成一个空白的、黑色的游戏窗口。我使用的是Windows 10 64位家庭的python3.5.2和pyplay1.9.1。请帮我找出为什么这个计划不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 12:44:22

它很好,你只需使用非常深的颜色(R=3/255,G=4/255,B=5/255)。试试这个来获得一个蓝色的屏幕:

代码语言:javascript
运行
复制
DISPLAY.fill((0,0,255))

来自文档 on Surface.fill

填充(颜色,rect=None,special_flags=0) -> Rect ..。 颜色参数可以是RGB序列、RGBA序列或映射的颜色索引。

RGB值的每个组件从0到255不等,255表示该组件的最大强度。纯黑色将表示为(0, 0, 0),白色表示为(255, 255, 255)

为了获得更好的演示(或乐趣),您可以使用这个程序来了解从不同的RGB值中可以得到哪些背景颜色:

代码语言:javascript
运行
复制
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()
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41873581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档