2013-12-20 4 views
0

В игре я работаю над тем, как я приближаюсь к более поздним этапам своей игры. Теперь я хочу, чтобы добавить локальный табло, на котором игрок вводит имя, которое затем добавляется к табло, в котором говорится: «Score :, Time :, Kills:». Должен ли я создать новый файл со своим классом? Также будут приняты ссылки на любые места, которые могут помочь с этим табло. Все, что мне нужно знать, это код, говорящий о том, как добавить вход, а затем сохранить его в системе локально. Спасибо. Сообщите мне, если вы хотите взглянуть на код, чтобы помочь мне с результатами. Еще раз спасибо.Pygame: Local Scoreboard After Death With Input

+0

Нужна дополнительная информация. Вы хотите, чтобы игроки вводили свои имена в текстовое поле внутри графического интерфейса? Как и где вы хотите, чтобы текст был введен. –

+0

Да, я бы хотел, чтобы они вводили имя, чтобы они могли хвастаться. И для текста я хочу, чтобы у него были заголовки сверху, поэтому «Имя забивает показатель времени», а затем всю информацию под ним. (Я смогу отобразить текст (надеюсь)). Это просто сохранение информации и текстового поля для игрока, которого я должен знать. Любая помощь оценивается. – GhostFrag1

ответ

0

Если табло действительно продвинутые, то вы можете использовать SQLite, но для большинства случаев табло использования pickle.dump() и pickle.load() должна быть достаточно (если я правильно понимаю) http://docs.python.org/2/library/pickle.html

+0

Спасибо. Что будет включено в «продвинутый» табло? – GhostFrag1

0

Это как я это делаю. Некоторые могут сказать, что это неуклюже, но для меня это работает без проблем.

В основном, он читается из текстового файла и преобразует данные в список, который нужно редактировать, сортировать и записывать обратно в файл.

scoreboard = open("scoreboard.txt", 'r') # Open file 

scores = scoreboard.read() # Put the whole file into a string 
scores = [i.split() for i in scores.split('\n') if i] # Convert string to list of lists 
scores.append(['JAY', 1027, 120, 42]) # Add new name and scores to list 
scores = sorted(scores, key=lambda tup: tup[1])[::-1] # Sort the lists according to the second item in each (SCORE) 

scoreboard = open("scoreboard.txt", 'w') # Open the file again to wipe it 
scoreboard.write(str(scores).replace('], [', '\n').translate(None, ',[]\'\"')) # Write sanatized data to list 

scoreboard.close() # Done 

Поиграйте с ним!

+0

Спасибо. Я посмотрю, как это будет :) – GhostFrag1

+0

Один вопрос. Как мне получить pygame для «чтения», а затем отобразить информацию – GhostFrag1

+0

. Вы можете просто использовать созданную переменную 'score'; он содержит все данные, затем используйте модуль шрифта pygame. Одно раздражение с pygame, однако, состоит в том, что он может отображать только одну строку текста за раз с помощью 'font.render()', что означает, что вам нужно перебирать многострочный текст. Например; 'для оценки в баллах: line = font.render ("% s \ t% s \ t% s \ t% s "% (оценка [0], оценка [1], оценка [2], оценка [3]) , 1, (255, 255, 255)); window.blit (строка, (0, 0)) '... или что-то. – Jollywatt