2016-01-28 22 views
1

我目前正在從文本文件加載顏色值,pygame給我錯誤。它可以在我的Windows計算機上正常工作,但不能在我的Linux上使用相同的代碼。下面是這段代碼是拉什麼樣的惡作劇的例子:Pygame顏色 - 使用字符串時無效的參數

color = getSetting('playerColor') //reads a .ini from SafeConfigParser 
print color      //prints: #f54e4e 
print pygame.Color('#f54e4e')  //prints: (245, 78, 78, 255) 
print pygame.Color(color)   //throws invalid argument error 

這樣做的唯一Linux的性質使我相信這件事情做編碼。如果未來的unicode_literals被導入,我聽說pygame.Color會中斷,但事實並非如此。我在python 2.7,pygame 1.9.1

我試圖直接傳遞的任何字符串似乎工作得很好。

回答

3

有可能color不是str而是unicode對象。嘗試

print pygame.Color(str(color)) 

您可以通過打印color對象type的調試它:

print type(color) 
+0

這的確看起來像這個問題,是沒有任何理由爲什麼我SafeConfigParser工作正常之前返回一個字符串,但突然開始給我一個Unicode對象? –

+0

只是一個瘋狂的猜測,但它可能是你已經建議的編碼。看到這個問題:http://stackoverflow.com/questions/1648517/configparser-with-unicode-items – Selcuk