def text_objects(text, color, size="small"):
smallfont = pygame.font.SysFont("comicsansms", 26)
if size == "small":
textSurface = smallfont.render(text, True, color)
def screen_message(msg, color, y_displace=0):
textSurf, textRect = text_objects(msg, color)
textRect.center = (int(display_width / 2), int(display_height / 2) + y_displace)
gameDisplay.blit(textSurf, textRect)
这是我有错误的代码部分
错误说,
第74行,在game_intro screen_message中("欢迎使用泰坦!",白色,-100)
是screen_message("Welcome to Titans!", white, -100)
第52行,在screen_message textSurf中,textRect = text_objects(msg,color)
TypeError:' NoneType'对象不可迭代
我不明白为什么它谈论NoneType
的错误答案 0 :(得分:1)
您的 text_objects 函数内部没有return语句,而您将其返回值分配给 screen_message 函数第一行中的textSurf和textRect。
在任何情况下,您都应确保 text_objects 返回该值对。有时人们在返回语句之前放置一些if语句进行检查,但是却忘记了其他情况等。用作内部缺少返回语句的赋值的右值的函数调用会生成此 TypeError(“'NoneType'对象是不可迭代的“,)错误。