Как я могу отображать строки на нескольких строках?

Я пишу окно таблицы «High Scores» для своей pygame. В настоящее время я распаковываю файл, а затем разбиваю кортежи, чтобы отображать имя игрока слева и счет справа. Однако в текущей конфигурации все имена игроков накладываются друг на друга, и то же самое со счетом. Мне нужно выяснить, как отображать имя каждого нового игрока и комбинацию очков в новой строке. Я все еще новичок в python (работаю с версией 3), буду очень признателен за любую помощь!

for x in high_scores:
    (Playername, score) = (x[0], x[1])
    print(Playername)
    Playername = Playername.rjust(25, " ")
    score = str(score)
    score = score.rjust(50, " ")
    megastring = megastring + Playername
    megastring = megastring + score

    Playersurface = myfont.render(str(Playername), True, (0, 0, 0))
    HighScoreScreen.blit(Playersurface,(0,0))
    scoresurface = myfont.render(str(score), True, (0, 0, 0))
    HighScoreScreen.blit(scoresurface,(0,0))

Спасибо!


person Jack Duane    schedule 11.10.2017    source источник
comment
@skrx Я знаю, что этот код будет работать: для i, (имя игрока, счет) в enumerate(high_scores): text = myfont.render('{} {}'.format(имя игрока, счет), True, (0, 0, 0)) HighScoreScreen.blit(text, (50, 30*i+5)) Но это не дает мне много места для форматирования. Какие-нибудь мысли?   -  person Jack Duane    schedule 11.10.2017
comment
С уважением @JackDuane. Если они были сложены вместе... не значит ли это, что все они были в одинаковом положении? ( pos ). Что вы подразумеваете под не так много места для форматирования ..?   -  person    schedule 11.10.2017
comment
Не могли бы вы показать нам желаемый результат и как должны быть отформатированы имена и оценка? Вы немного поэкспериментировали с кодом в моем предыдущем примере? Кроме того, попробуйте превратить свой код в mcve, который мы сможем скопировать и запустить.   -  person skrx    schedule 11.10.2017
comment
Для смещения по вертикали вам нужно увеличивать координату y scoresurface на каждой итерации. Питоническим решением будет enumerate high_scores (как показано в моем примере), но вы также можете определить переменную y_pos выше цикл, а затем добавляйте к нему некоторое значение на каждой итерации, например. y_pos += 30.   -  person skrx    schedule 11.10.2017
comment
@skrx, вот и все! Я определил x_pos и y_pos, а затем добавлял к ним некоторое значение на каждой итерации в соответствии с вашей рекомендацией. Я чувствую себя немного глупо сейчас, это так просто! Зная, что я могу сделать это в любом случае, есть ли правильный или неправильный способ сделать это? Перечисление лучше, чем определение y_pos?   -  person Jack Duane    schedule 12.10.2017
comment
Оба способа хороши, но, как я уже сказал, перечисление списка немного более питонично/идиоматично.   -  person skrx    schedule 12.10.2017