主要内容 #
-
- 定义读取游戏最高分函数
- 定义绘出游戏结束画面函数
1.定义读取游戏最高分函数 #
我们在整个游戏界面都想要显示历史最高得分,并且结束时需要比较当前得分和历史最高分大小,所以我们需要定义一个读取最高分的函数。
该部分代码如下:
def gethighscore(): # 读取最高分
if os.path.isfile('highscore'):
highfile = open('highscore', 'r')
highscore = highfile.readline()
highfile.close()
else:
highscore = 0
return highscore
将以上所有代码加入到上一课创建的项目文件中(该代码请置放在main()函数和loadtext()中间),运行,发现无任何变化,因为该部分只是定义了读取最高分的函数,并未调用该函数。
2.定义绘出游戏结束画面函数 #
我们想要在游戏结束时,展示游戏结束画面,包括两种情况:第一种是没有打破最高分记录,则只是显示game over和得分情况。第二种是打破了最高分记录,则显示获得了最高分的字符串和当前得分,并且要把最高得分保存写入文档。所以我们需要定义一个加载gameover的函数。
该部分代码如下:
def loadgameover(scorenum, highscore): # 绘出GAME OVER
my_font = pygame.font.SysFont(None, 50)
levelstr = 'GAME OVER'
over_screen = my_font.render(levelstr, True, (255, 0, 0)) # 绘出GEME OVER
backscreen.blit(over_screen, (300, 240))
highscorestr = 'YOUR SCORE IS ' + str(scorenum)
over_screen = my_font.render(highscorestr, True, (255, 0, 0)) # 绘出得分
backscreen.blit(over_screen, (280, 290))
if scorenum > int(highscore): # 如果得分高于历史最高分,则写入最高分
highscorestr = 'YOUR HAVE GOT THE HIGHEST SCORE!'
text_screen = my_font.render(highscorestr, True, (255, 0, 0))
backscreen.blit(text_screen, (100, 340))
highfile = open('highscore', 'w')
highfile.writelines(str(scorenum))
highfile.close()
将以上所有代码加入到上一课创建的项目文件中(该代码请置放在main()函数和gethighscore()函数中间),运行,发现无任何变化,因为该部分只是定义了游戏结束的函数,并未调用该函数。
本小节中的两个函数在当前的逻辑中未去实现,将在后续的代码中完成调用,本小节仅提前完成逻辑的定义。
小结 #
本节主要介绍了接金币游戏中的读取最高分,以及定义游戏结束画面函数。