主要内容 #
-
- 定义读取游戏最高分函数
- 定义绘出游戏结束画面函数
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()函数中间),运行,发现无任何变化,因为该部分只是定义了游戏结束的函数,并未调用该函数。
本小节中的两个函数在当前的逻辑中未去实现,将在后续的代码中完成调用,本小节仅提前完成逻辑的定义。
小结 #
本节主要介绍了接金币游戏中的读取最高分,以及定义游戏结束画面函数。