Загрузка данных из внешнего файла (Loading data from external file)
Этот рецепт только для несколько более продвинутых пользователей (тех, кто не боится кода Python).
Предположим, вы хотите загрузить некоторые игровые данные из внешнего файла (думаю: редактор уровней, требования к миссии и т.д.). Как найти внешний файл?
Убедись, что разместили файл в папку игры или папку, вложенную в папку с игрой. Предположим, у нас есть файл missions.txt, который находится в .../game/resources/missions.txt.
Как это *не* делать (How *not* to do it )[править | править код]
Нижеследующий код не работает, файл не будет найден:
f = open("resources/missions.txt", "r")
Вы также не хотите указать полный путь как часть "open", так как он, скорее всего, не будет работать ни на какой другой системе, кроме вашей.
Для открытия файла и выполнения в нём перебора строк вы должны преобразовать путь, используя, между тем, renpy.load.transfer в вышеуказанном коде.
Пример открытия файла missions.txt, расположенного в .../game/resources (Example opening a file missions.txt located in .../game/resources)[править | править код]
python:
# открыть файл
f = open(renpy.loader.transfn("resources/missions.txt"),"r")
# выполнить перебор его строк и сделать с ними что-нибудь
for line in f:
do_something(line)
# когда закончите, закройте файл
f.close()
Пример разбора missions.xml (Example parsing missions.xml)[править | править код]
python:
# импортируйте связанные с xml библиотеки
import xml.etree.ElementTree as elementtree
# проведите синтаксический анализ файла missions.xml
tree = elementtree.parse(renpy.loader.transfn("resources/missions.xml"))
Источник[править | править код]
Статья "Loading data from external file" на английском языке
На главную страницу | Книга рецептов Энциклопедии Ren'Py | Книга рецептов Ren'Py | Вернуться к началу статьи |