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

时间:2017-06-13 06:00:28

标签: python shell pygame fill nonetype

好的,这个有点奇怪。

我承认我是Python的新手而不是编程,所以我尝试了所有不同类型的方法来找到这个问题的答案,但却没有提出任何问题。

我不会厌恶我已经完成的草率编码,但最后我会使用代码gameDisplay.fill((0,0,0))并在shell上提出错误'NoneType' object has no attribute 'fill'。< / p>

我尝试过移动gameDisplay代码,然后在shell中运行命令以查看所有内容。在两台机器上(一台ubuntu Linux一台Mac)。 shell结果有效。但是,当我再次对主代码进行双重检查和三重检查时,我得到了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”的矩形窗口,它应该涂成红色。

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

所以在这一点上我知道我做错了什么。我把这个确切的序列直接放入shell中,直播,我得到了900,600长的矩形窗口,标题为“MyArea”,在我调用更新函数后涂成红色。

是什么给出了?

1 个答案:

答案 0 :(得分:2)

与Iausek的评论相似,请替换

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

使用:

pygame.display.set_caption('MyArea')

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

  

如果显示器有窗口标题,此功能将更改窗口上的名称。某些系统支持使用备用较短标题来最小化显示。