pygame问题 - 'NoneType'对象没有属性'fill'



好吧,这个有点奇怪。

我承认我是Python的新手,但不是编程新手,所以我尝试了所有不同类型的方法来找到这个问题的答案,但一无所获。

我不会用我所做的草率编码让你感到厌烦,但最终我去使用代码gameDisplay.fill((0,0,0)),我想出了 shell 上的错误'NoneType' object has no attribute 'fill'

我尝试移动gameDisplay代码,然后在shell中运行命令以实时查看所有内容。 在两台机器上(一台 ubuntu Linux 一台 Mac)。 外壳结果有效。 但是,当我再次仔细检查并三重检查主代码时,我得到了 NoneType 错误。

所以为了确保我没有在代码中出错,我进去做了一个非常简单的程序。

import pygame
pygame.init()
screenW = 900
screenH = 600
screen = ((screenW,screenH))
gameDisplay = pygame.display.set_mode(screen)
gameDisplay = pygame.display.set_caption('MyArea')
gameDisplay.fill((255,0,0))
pygame.display.update()

所以在这一点上,当我运行代码时,我应该想出一个名为"MyArea"的矩形窗口,它应该被涂成红色。

这是一个黑色的窗口,标题正确,外壳中有'NoneType' object has no attribute 'fill'

所以在这一点上,我知道我没有做错什么。 我直接将这个确切的序列放入 shell 中,实时,我得到了名为"MyArea"的 900,600 个长矩形窗口,在我调用更新函数后涂成红色。

什么给?

与 Iausek 的评论类似,请替换

gameDisplay = pygame.display.set_caption('MyArea')

跟:

pygame.display.set_caption('MyArea').

pygame.display.set_caption(caption) 返回 None,并且只修改当前窗口的标题。根据文档:

如果显示器具有窗口标题,则此函数将更改窗口上的名称。某些系统支持用于最小化显示的备用较短标题。

最新更新