0

我正在为游戏编写地图编辑器,但无法将信息写入文件

所以我写了一个复制函数,它将把你的鼠标放在矩形上并将它复制到另一个地方,保持图像路径但给它新的坐标并将它附加到表面列表

我让它工作但是当我尝试将它写入文件时我遇到了麻烦

这是编写它的for循环:

for index, item in enumerate(self.surface_list):
     posfi.write('SURFACE:%s:%s:ground%s\n' % (self.surface_paths[index], item[1], item[2]))

问题是表面(矩形)比图像多(因为我复制了图像),所以self.surface_paths[index]矩形比图像多,所以列表索引超出范围

我尝试添加if index < len(self.surface_paths):它,但这使它只将前 2 个矩形写入文件,因为我使用 2 个不同的图像

谁能告诉我如何在路径列表超出范围的情况下将矩形写入文件

谢谢你!

4

1 回答 1

1

这并不能直接回答您的问题,但如果您希望能够访问surface_list和/或surface_paths在当前功能完成后,您是否考虑过使用pickle

import cPickle as pickle #cPickle is faster than pickle
#To save
savePth = '' #Save file path
f = open(savePth, 'w') #w for "write"
pickle.dump(self.surface_list, f)
f.close()

现在您的变量保存在savePth指向的任何文件中。装载:

import cPickle as pickle
#To load
f = open(savePth, 'r') #r for "read"
self.surface_list = pickle.load(f)
f.close()
于 2013-07-22T20:04:21.887 回答