【发布时间】:2014-05-03 22:45:55
【问题描述】:
首先,我对编程还是比较陌生,所以请放轻松。
我正在用 Python2.7 编写一个类似街机的游戏,我想实现一个排行榜,例如,可以存储 10 对用户名和所获得的分数。为了给你一个想法,它应该看起来或多或少像这样:
1. AAA 100
2. BBB 10
3. CCC 1
...等等。这样,它应该能够跟踪 10 个分数。
当玩家完成游戏并在排行榜上得分最高时,应提示他输入最多 15 个字符的名称并保存分数。此外,游戏代码应允许玩家从开始菜单查看排行榜,即点击“排行榜”时应该可以看到最高分。
我已经尝试寻找一种方法来做到这一点,但不幸的是,结果要么涵盖了在线排行榜,要么只保存了有史以来最高的分数,要么对于我作为一个编程初学者来说太复杂而无法掌握。我也不能确定这些可能性是否允许读取游戏本身的排行榜。
如果有人能帮我解决这个问题,我将不胜感激。
(如果我不够清楚(写这篇文章时我很累),我唯一的问题是打开和读取/写入包含排行榜的不同文件并在游戏中显示它。但是我没有,希望它出现在 Shell 中。)
编辑:
pygame.font.init()
font = pygame.font.Font(None, 30)
readfile = open("leaderboard.txt", "r")
text = font.render(readfile, True, (27,100,225))
textRect = text.get_rect()
textRect.centerx = screen.get_rect().centerx
textRect.centery = screen.get_rect().centery
screen.blit(text, textRect)
按照建议我尝试了渲染命令,到目前为止我已经想出了这个,但我收到一条错误消息:
Traceback (most recent call last):
File "L:\game.py", line 97, in <module>
text = font.render(open("leaderboard.txt", "r"), True, (27,100,225))
TypeError: text must be a string or unicode
【问题讨论】:
-
您需要将其分解为更小的问题并研究并单独尝试每个问题 - 在游戏过程中跟踪得分,提示用户输入,将用户/得分保存到文件中,读取文件并按分数排序...就目前而言,这是一个非常广泛的问题(唯一有效的答案是为您编写的完整程序),所以对于 specific 关于 specific 编程问题。
-
一个选项 - 将其存储为文本文件,每当制作乐谱时读取它,将每个乐谱/名称保存在数组中,插入新乐谱,然后重新保存文本文件。
-
@Ant P 好吧,我唯一的问题实际上是在不同的文件中存储和读取分数,以及在它们变得多余时删除它们。我可以很容易地跟踪分数,使用变量并提示玩家输入名称;我只是想在必要的情况下解释游戏的工作原理。我只是缺乏如何跟踪这些分数然后从游戏文件中读取它们的知识。我发现了很多使用 Python 读取文件的结果,但我没有找到任何关于在游戏中读取它的内容。
-
@Louis 这听起来和我想的差不多,但是在游戏中该怎么做呢?
-
@MMM - 在 pygame 中,我认为您需要构建一个表面,在其上渲染文本,然后将该表面放置到显示器上。
标签: python python-2.7 pygame