Использование Python вместо XML для загрузки ресурсов в C ++?

Я создаю простую 2D-игру (для изучения) на c ++ и в настоящее время анализирую XML-файлы, используя TinyXML для загрузки своих текстур и других ресурсов. Однако в последнее время я был заинтригован python и хочу использовать python вместо XML по разным причинам (еще раз, в целях обучения).

Мне было интересно, смогу ли я перевести свои объекты в XML в большой кортеж на python, а затем с помощью встроенного интерпретатора python проанализировать элементы кортежа и извлечь данные в мою игру на C ++.

Mount and Blade Warband (игра, которая впервые познакомила меня с модулями Python), похоже, делает это именно так, и это вызвало у меня интерес.

Вот пример первых двух элементов в большом кортеже для Mount и Blade ….

sounds = [

("click", sf_2d|sf_vol_3,["drum_3.ogg"]),

("tutorial_1", sf_2d|sf_vol_7,["tutorial_1.ogg"]),

Тем не менее, для монтирования и монтирования необходимо запустить исполняемый файл на этих скриптах Python, который преобразует их в большие файлы .txt …

drum_3.ogg 769
tutorial_1.ogg 1793

Что приводит меня к мысли, что игра на самом деле разбирает эти текстовые файлы.

Возможно ли то, что я пытаюсь сделать?

Я искал некоторые API и нашел несколько хороших, преимущественно Python / C или Boost.Python, и надеялся, что кто-нибудь сможет дать мне какое-то руководство.

Большое спасибо и любой вклад очень ценится!

3

Решение

Файлы ресурсов / настроек, написанные на python, подходят, если ваш движок (игра или какой-то специальный процессор ресурсов) написан на python.

Это потому, что вы можете просто import <resource-file> из вашего питонического модуля, вместо синтаксического анализа XML / text / other-format.

Если вы не используете Python, я не вижу причин писать ресурсы на Python.

Что касается вашего примера о Mount and Blade — точно так, как я уже сказал, когда игра не написана на python, вы должны использовать некоторый препроцессор ресурсов.

1

Другие решения

Или вы могли бы использовать Lua за ваши ресурсы. Вы можете встроить интерпретатор Lua в свою игру, что очень просто, и сохранить свои ресурсы в виде таблиц Lua (которые немного похожи на словари Python).

-1

По вопросам рекламы [email protected]