Блочный редактор в проекте C++

Я работаю над игрой, в которой игрок пишет какой-то базовый ИИ, который играет «вместо» него. Таким образом, алгоритм, написанный пользователем, должен выполняться сразу после его сохранения.

Игра написана на C++ с использованием фреймворка Qt.

Я не хочу пугать игроков программированием, поэтому я хочу предоставить им удобный редактор визуального программирования с возможностью перетаскивания (как в этом игра CodeSpells). Blockly выглядит именно так, как я хотел, поскольку он может генерировать сценарии Lua, которые можно использовать/выполнять на C++. код (мне нужно узнать об этом больше, но это не для этого вопроса).

Чего я не знаю, так это как создать/интегрировать этот редактор в C++. В их документации говорится только о вебе, Android и iOS.

Итак, мой вопрос: как интегрировать редактор Blockly в проект C++?

ИЗМЕНИТЬ:

Я написал разработчикам CodeSpells. Это важная часть ответа:

«Для CodeSpells мы использовали продукт под названием CoherentUI, предназначенный для Unity. В последующих проектах мы использовали более дешевый продукт Unity: https://www.assetstore.unity3d.com/en/#!/content/55459"

Можно ли интегрировать редактор Blockly в проект Qt C++ с помощью встроенного просмотра? Например, как это? (ни разу с ним не работал)


person Pyro2266    schedule 01.11.2016    source источник
comment
Разработчик Blockly может в какой-то момент зайти сюда и дать блестящий ответ, но вы можете получить более быстрый ответ, связавшись с ним напрямую. Также похоже, что они ищут авторов. Может быть весело.   -  person user4581301    schedule 01.11.2016
comment
Blockly специально разработан для использования в Интернете. Лучше всего, вероятно, либо найти другую библиотеку, либо перенести весь проект на C++ (удачи!)   -  person 0x5453    schedule 01.11.2016
comment
Ах, я ненавижу, когда люди минусуют мои посты, не комментируя, что я сделал не так. Во всяком случае, я написал разработчикам CodeSpells. Это важная часть ответа: Для CodeSpells мы использовали продукт под названием CoherentUI, предназначенный для Unity. Для последующих проектов мы использовали более дешевый продукт Unity: assetstore.unity3d. .com/en/#!/content/55459. Так что, возможно, это может быть ответом на мой вопрос.   -  person Pyro2266    schedule 01.11.2016


Ответы (1)


Итак, это можно сделать с помощью встроенного браузера. Я сохранил веб-редактор Blockly в ресурсах. Затем я использовал QWebEngineView для отображения редактора из ресурсов.

Вот похожее руководство.

person Pyro2266    schedule 09.11.2016
comment
Интересно! Я искал способ расширить Scratch и новый Blockly. Как тогда он хранит программы? Это задокументированный формат, который вы можете разобрать и преобразовать в свой язык? - person Valentin Heinitz; 12.11.2018
comment
Честно говоря, я действительно не знаю. Это было более двух лет назад, и я даже не использовал это решение, так как оно было очень медленным. В итоге я написал свой собственный визуальный язык программирования. - person Pyro2266; 13.11.2018