py实现外星人入侵(二次开发)——1.读入最高分(包含文件的基本操作和文件相对路径讲解)

本文介绍了在外星人入侵游戏中如何实现最高分的持久化存储,通过文件读写操作保存最高分。文章详细讲解了使用Python的文件打开模式如'a', 'w', 'r'等,并探讨了文件路径与执行路径的关系。同时,讨论了在文件不存在或异常情况下的处理方法,包括使用异常处理和os库来判断文件是否存在。" 50589687,5603554,Unity官方教程:游戏开发实战,"['Unity', '游戏开发', '2D游戏', '移动控制', '关卡设计']
摘要由CSDN通过智能技术生成

前言

在之前的博客中,我详细的介绍了一下大战外星人的现目组成,从这篇博客开始,我将尝试用不同的方式来二次开发(魔改)这个项目。
这次我将魔爪放在了最高分部分上,我们知道之前的最高分在每一次重新运行游戏就消失了,这次我们采取将最高分读入到文件中

先写入

写入部分还是比较简单的,这里我采取的思路是在三条命都没了之后、在游戏退出之前写入当前最高分。
虽然书上的意思是在sys.exit()之前,但是玩一半退出了,不给你保留也没什么问题。

首先找到要修改的位置:game_function文件的ship_hit函数
在函数中,我们有判断三条命是否用完了的情况,并对两种结果都进行了操作,我们将在else中添加内容。

然后要考虑,可能之前已经有了这样一个最高分文件,但是对我没有影响,我的想法是简单粗暴一些,反正之前的最高分也不要了,与其取出然后再写入不如直接使用"w"方法直接覆盖之前的文档。

(下面可能有一点啰嗦,简单说了一下几种文件打开类型和打开函数,不感兴趣的直接看代码部分吧)

对了,先介绍一下py的几种常见的读入文件格式:

字母 模式
w 写入模式
r 读取模式
r+ 读写模式
a 附加模式

我们假设之前有一个文件,那么a就是在之前的基础上接着写;
w就是覆盖掉之前的文件,然后重写;
r则是只能读取,不能写入;
r+则比较厉害,能写入和读取。

如果是之前没有文件,w和r+会生成一个空文档;
a也会生成,但是会有一个io.UnsupportedOperation: not readable的报错;
至于r,还是别难为它吧,直接报错文件找不到。

回归正题,别忘了我们采取的是"w"模式。
一般来说打开文件我比较喜欢的是with open,这里也简单说一下吧。
with open的结构是这样的:

with open("file name","模式") as file_object:
	内容

首先with open是单独的一个模块,主意好缩进;
两个参数分别为文件名和打开类型(不写默认为r);
file_object属于打开文件的别名,学过C的都知道也有类似的东西(不过孩子已经ptsd了,立下flag以后不被逼就不写C)

除此之外,还有:

file_object = open("file name","模式")

不过这是我们就需要使用close函数了,with open相当于是将关闭文件的时间交给py来判断。

代码部分:
#stats.max_name存储了我的最高分文件名称,这个就是自己随便起
with open("./alien/"
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值