好的,这个有点奇怪。
我承认我是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”,在我调用更新函数后涂成红色。
是什么给出了?
答案 0 :(得分:2)
与Iausek的评论相似,请替换
gameDisplay = pygame.display.set_caption('MyArea')
使用:
pygame.display.set_caption('MyArea')
。
pygame.display.set_caption(caption)返回None,只修改当前窗口的标题。根据文件:
如果显示器有窗口标题,此功能将更改窗口上的名称。某些系统支持使用备用较短标题来最小化显示。