Разное: Painter's Tools
17.06.2018


Скриншот

И снова возвращаемся на первый курс в 2015 год, когда была создана данная поделка по наводке одного из преподавателей, которому захотелось создавать интерактивные презентации, поддерживающие функцию рисования поверх заготовленных изображений. Точную постановку задачи и требования я уже смутно помню, но реализовать всё предлагалось в виде плагина для среды разработки Construct 2. В результате получилась рисовалка, изображённая на скриншоте.

Плагины написаны на богомерзком JavaScript. Причём, вероятно, написаны мега хреново, потому что, как обычно, всё делалось в последний момент и было не до структурирования кода — лишь бы хоть как-то более-менее правильно работало. В итоге с тех пор остался текстовый документ со следующим описанием известных проблем:

  • Временами отменяются сразу несколько элементов; пока не выяснил, в чём проблема и какая там закономерность.
  • В браузере Chrome после выбора любого текстового инструмента начинаются жёсткие тормоза; в других браузерах такого замечено не было; природа явления остаётся неизвестной.
  • Последняя нарисованная фигура не восстанавливается по Ctrl+Y. Особенность реализации механизма.

Но на самом деле, когда я только что всё проверил, отмена не работала вообще. Не знаю, с чем это связано. Я мельком глянул в код, понял, что уже ничего не понимаю, и решил забить, потому что всё равно никто этим пользоваться не будет.

А невозможно этим пользоваться, потому что это тупая растровая рисовалка типа Paint'а. По-хорошему надо было сразу реализовывать векторную рисовалку с возможностью изменения объектов, но я не осилил, надеясь, что смогу допилить такой функционал в следующем семестре. Однако не сложилось.

Установить плагин можно, просто перетащив файл PainterTools.c2addon на окно Construct 2. Либо вручную, следуя инструкции с официального сайта.

Теоретически у плагина есть приватный hg-репозиторий, но он вёлся кое-как (в те времена я только познавал премудрости работы с системами контроля версий) и там творится полный бардак, который стыдно показывать людям (например, там есть две версии плагина, одна из которых у меня сейчас открывается с ошибкой), но вспоминать всё и наводить порядок слишком лень. Так что пусть он и дальше остаётся в тени.