Я создаю простую 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, и надеялся, что кто-нибудь сможет дать мне какое-то руководство.
Большое спасибо и любой вклад очень ценится!
Файлы ресурсов / настроек, написанные на python, подходят, если ваш движок (игра или какой-то специальный процессор ресурсов) написан на python.
Это потому, что вы можете просто import <resource-file>
из вашего питонического модуля, вместо синтаксического анализа XML / text / other-format.
Если вы не используете Python, я не вижу причин писать ресурсы на Python.
Что касается вашего примера о Mount and Blade — точно так, как я уже сказал, когда игра не написана на python, вы должны использовать некоторый препроцессор ресурсов.
Или вы могли бы использовать Lua за ваши ресурсы. Вы можете встроить интерпретатор Lua в свою игру, что очень просто, и сохранить свои ресурсы в виде таблиц Lua (которые немного похожи на словари Python).