2016-01-28 5 views
1

В настоящее время я загружаю значение цвета из текстового файла, и pygame дает мне ошибки с ним. Он отлично работает на моем компьютере под управлением Windows, но не на моем Linux с идентичным кодом. Вот пример того, какого рода махинации этот код тянет:Pygame Color - Invalid Argument при использовании String

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 

линуксовой только природа это приводит меня к мысли, что что-то делать с кодировкой. Я слышал pygame.Color разбивается, если импортируются будущие unicode_literals, но это не так. Я в python 2.7, pygame 1.9.1

Любая строка, которую я пытаюсь передать, кажется, работает очень хорошо.

ответ

3

Возможно, что color не является str, а unicode объектом. Попробуйте

print pygame.Color(str(color)) 

Вы можете отлаживать его, напечатав type из color объекта:

print type(color) 
+0

Это действительно выглядит как вопрос, является ли какой-либо из причин, почему мой SafeConfigParser работает нормально и возвращает строку перед тем, но потом вдруг начал давать мне объект Unicode? –

+0

Просто дикая догадка, но может это как-то связать с кодировкой, как вы уже предполагали. См. Этот вопрос: http://stackoverflow.com/questions/1648517/configparser-with-unicode-items – Selcuk

Смежные вопросы