У меня есть небольшая аркадная игра на питон, которую я конвертировал в автономный .exe с помощью pyInstaller. Он отлично работает с pygame, но проблема в том, что я использую pickle для сохранения рекордов. Первоначально я использовал cmd для ввода пользователем, поэтому в cmd он сказал бы «Пожалуйста, введите свое имя», и все, что вы набрали, будет храниться в отдельном файле с использованием pickle. Две проблемы: я не могу использовать cmd в автономном .exe (и он выглядит уродливым в любом случае), и когда я храню его в отдельном файле с рассолом, я не думаю, что он включен в автономный. Я говорю «думаю», потому что код никогда не проделывает мимо раздела пользовательского ввода.Получение пользовательского ввода на экран в pygame и его сохранение
Как я могу получить ввод пользователя для отображения на экране (в моем собственном шрифте и местоположении), а не в cmd?
и
Как я могу включить пользовательский ввод файла (который хранится с рассол) должны быть включены в EXE-файл?
Это то, что я в настоящее время (все в пределах основного контура):
if lives == 0:
username = input("Please type your name: ")
highscore = {username: points}
try:
with open("C:/Python35/highscore.txt", "rb") as highscoreBest:
highscoreBest = pickle.load(highscoreBest)
except EOFError:
with open("C:/Python35/highscore.txt", "wb") as highscoreBest:
pickle.dump(highscore, highscoreBest)
for (k, v), (k2, v2) in zip(highscore.items(), highscoreBest.items()):
if v >= v2:
with open("C:/Python35/highscore.txt", "wb") as highscoreBest:
pickle.dump(highscore, highscoreBest)
with open("C:/Python35/highscore.txt", "rb") as highscoreBest:
highscoreBest = pickle.load(highscoreBest)
for key, value in highscoreBest.items():
print("%s has the highscore of %s!" % (key, value))
highscoreText = highscorefont.render("Highscore %s" % (value), 1, textcolor)
gameOverText = font.render("GAME OVER", 1, textcolor)
scoreText = font.render("Score %s" % (points), 1, textcolor)
while 1:
screen.blit(gameOverText, (200, 400))
screen.blit(scoreText, (225, 450))
screen.blit(highscoreText, (235,500))
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
pygame.display.flip()
time.sleep(1)
Спасибо всем, кто ответил.
Я знаю, что я могу связать его с ехе, но Я не знаю, как это сделать с pyInstaller, поскольку он автоматически связывает файлы, которые мне нужны, поэтому я не знаю, как их вручную добавить. Кроме того, я не знаю, как установить любую из этих «GUI-библиотек». Не могли бы Вы уточнить? –
только что обновил мои предложения – sr3z
Спасибо, это было очень полезно, но что мне делать с файлом '.gz', который я загрузил для OcempGUI? Все опции «extract» выделены серым цветом. –