簡體   English   中英

在pygame中將整數顯示為文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM