[英]Displaying an integer as text in pygame
在pygame中,我嘗試打印文本“ 10 x 10”。 10作為整數存儲在sizeOfGrid變量中。 我當前的代碼是:
text = font.render((str(sizeOfGrid),'x',str(sizeOfGrid)), 1, (10, 10, 10))
textpos = (32,210)
screenDisplay.blit
當我運行程序時,它將返回錯誤exceptions.TypeError: text must be string or unicode
。 我不理解此錯誤或錯誤,因為我已將10轉換為字符串。
我會用這樣的東西
screenDisplay.blit(font.render("{0}x{0}".format(sizeOfGrid), True, (10, 10, 10)), (32, 210))
font.render
希望首先爭論一個字符串,您正在提供一個元組。
注意:由於兩個值均為sizeOfGrid,因此我使用了{0}x{0}
。
font.render
的第一個參數必須是數據類型字符串或unicode。 您可能只需要更改它。 代替(str(sizeOfGrid),'x',str(sizeOfGrid)
您可以編寫類似"%dx %d" % tuple([sizeOfGrid]*2)
。
"%dx %d"
部分是字符串格式,我們要求輸入兩位數的參數。 對於元組樣本(4, 4)
這將給我們字符串"4 x 4"
。
要向字符串添加參數,我們使用模后跟參數,即% tuple([sizeOfGrid]*2)
,其中[sizeofGrid]*2
為[10, 10]
而tuple([sizeOfGrid]*2)
為(10, 10)
,這恰好是我們的兩位數參數。 您可以像這樣使用它:
text = font.render("%d x %d" % tuple([sizeOfGrid]*2), 1, (10, 10, 10))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.