В течение этой недели я продолжал работать над интеграцией Svelte и Construct 3. Первая попытка закончилась ничем. Почему? Ну, я хотел сделать что-то вроде научного калькулятора, но мои познания в математике довольно ржавые. Мне придется вернуться к книгам. В итоге я бросился к плану Б: меню для Construct 3. Первый тест был многообещающим:

Исходя из этого, я решил продолжать этот путь. Моя идея состоит в том, чтобы получить что-то, что позволит мне включать меню этого типа в мои проекты без особых усилий. Хотя, если честно, быстрее всего было бы воспользоваться проектом Aekiro Pro UI — UI Components. Но почему я должен выбирать легкий путь, когда я могу карабкаться по длинному и сложному?

Во всяком случае, начиная с этого теста, я создал шаблон, в котором можно добавить функциональность. Я настроил механизм изменения шаблона меню:

Я добавил возможность решать, какой шрифт использовать в меню

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

Пару вещей все еще не хватает. Я хотел бы добавить возможность включать и отключать различные элементы. А во-вторых, добавьте несколько предустановленных стилей.

И затем, очевидно, есть проект в C3, чтобы показать, как использовать различные функции. Чтобы закончить, я должен определить некоторые детали используемых команд.

Я думаю, что синтаксис, похожий на menuSvelte.category.function (), подойдет. На данный момент я реализовал

items
- pushItem (item:ItemType)
- unshiftItem (item:ItemType)
- addItemAtIndex (index:number, item:ItemType)
- updateItemById (id:string, item:ItemType)
- updateItemByLabel (label:string, item:ItemType)
- updateItemByIndex (index:number, item:ItemType)
- shiftItem ()
- popItem ()
- removeItemById (id:string)
- removeItemByLabel (метка:string)
- removeItemByIndex (index:number)
- loadItemsFromArray (arrayItems:ItemType[ ])

столбцы
- allColumns ()
- setColumns (массив:строка[])

название
– setTitle (название:строка)
– сбросить ()
– очистить ()

видимый
 – истина ()
 – ложь ()

CSSVarStyle
- init ()
- changeStyle (стиль: строка, значение: строка)
- changeFontTitle (значение: строка)

У меня все еще есть пара технических вопросов, которые нужно прояснить. Первый касается возможности использования спрайтов в качестве иконок. Есть некоторые ограничения, связанные с C3, которые я не знаю, стоит ли пытаться их обойти. Во-вторых, как это все опубликовать.

Все, что вам нужно, это два файла:

  • menu.js
  • menu.css

После их импорта в Construct 3 можно создавать индивидуальные меню. Но я не знаю, могу ли я начать с этого, чтобы создать плагин, или я могу распространять два файла напрямую.

Я подумаю об этом, но не сегодня и не завтра. Сегодня (наконец-то) моя очередь за вакциной, а завтра будет долгий рабочий день. Но я хотел поговорить об этом проекте, потому что я им очень горжусь. И если вам это тоже нравится, я помню свою страницу на Патреоне: patreon.com/el3um4s.

Первоначально опубликовано на https://blog.stranianelli.com 13 июня 2021 г.