我在查找错误时遇到了一些麻烦。当我尝试运行代码时,我得到以下输出:
Traceback (most recent call last):
File "C:/Users/PC/Documents/Python_Projects/Segundo Teste/Game.py", line 133, in <module>
set_message(message)
File "C:/Users/PC/Documents/Python_Projects/Segundo Teste/Game.py", line 61, in set_message
message = font.render(text, True, black, white)
TypeError: text must be a unicode or bytes
这些是代码行:
if message != previous_message:
set_message(message) --> line 133
def set_message(text):
global message, previous_messsage
message = font.render(text, True, black, white) --> line 61
previous_messsage = message
答案 0 :(得分:0)
Font.render()
method返回一个Pygame Surface
实例。来自文档:
<强>渲染()强>
将渲染文本作为曲面返回
render(text, fgcolor=None, bgcolor=None, style=STYLE_DEFAULT, rotation=0, size=0) -> (Surface, Rect)
返回一个新的
Surface
,其中的文本以'fgcolor'给出的颜色呈现给它。
您正在尝试渲染Surface
个实例;它不是文本而不是unicode。目前还不清楚你期望previous_message
是什么,但你正在做的事情是行不通的。
我在这里忽略你的变量拼写错误; previous_messsage
与previous_message
的名称不同;后者拼写正确,但你在set_message()
中使用前者。