Python游戏的内部排行榜

1 投票
1 回答
2451 浏览
提问于 2025-04-18 05:16

首先,我还是编程新手,所以请多多包涵。

我正在用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)

按照建议,我尝试了render命令,到目前为止我得到了这个,但出现了错误信息:

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

1 个回答

-1

首先,创建一个表面(surface)——然后使用 pygame.font模块,特别是它的render()方法,把文字画到这个表面上。

接着,像往常一样把这个表面放到显示屏上。

撰写回答