Проекты
GameDev.ru / Проекты / Форум / Глазурь / Glazeur (светомузыкальная десятка клавиатур) [MS-VC 6]

Глазурь / Glazeur (светомузыкальная десятка клавиатур) [MS-VC 6]

AlikberovПостоялецwww10 окт. 201722:13#0

Что это такое?


При помощи «Глазури» с наличием десятка клавиатур предоставляется уникальная возможность описывать различные эффекты достаточно красивой сложности.
Можно заставить просто перемигиваться индикаторами в такт нотам трекерной музыки, предварительно сохранив мелодию в текстовом варианте. В этом случае, программа отыщет окно ModPlug-Tracker'а и запустит воспроизведение, чтобы синхронно интерпретировать ноты миганием.
А можно заранее потрудиться и описать эффекты на «Глазурь-скрипте», что является достаточно мощным средством.
Главное - иметь как можно больше клавиатур и верно задать логический порядок клавиатур.

Краткое описание токенов

СигнатураДействиеПрименениеОбласть действия1
§iВыборка активного параграфа эффектов§0…§9Сценарий
Выбор строки эффектов в активном параграфе0§…99§Сценарий/Параграф
n§iВыбор параграфа эффектов99§0…45§6…0§9Сценарий
n㎳Установка базового интервала задержки сценария1㎳…1000㎳Сценарий
0㎳Сброс коэффициентов интервала задержки0㎳Параграф
ndЗадание коэффициентов интервала задержки2⅛㎳…3⅘⅞㎳Сценарий/Параграф
ndОрганизация паузы в «проигрывании»⏱…1⏱…2⅛⏱…3⅘⅞⏱Сценарий/Параграф
ndПлавное изменения коэффициентов скорости⏲…1⏲…2⅛⏲…3⅘⅞⏲Сценарий/Параграф
n⤴Переход строками выше в активном параграфе⤴…1⤴…99⤴Сценарий/Параграф
n⤵Переход строками ниже в активном параграфе⤵…1⤵…99⤵Сценарий/Параграф
Запуск «проигрывания» эффекта активной строки параграфаСценарий
n(…)Организация зацикливания n-раз1(➰)…99(➰⤵)Сценарий/Параграф
n♻Организация зацикливания строки n-раз1♻…99♻Сценарий/Параграф
§(…)Управление выбранным параграфом§(0⏱⅘⏱⤵)Сценарий
Непосредственное управление индикаторами клавиатур5(⠪⠝⏱⠿⠽⏱)Сценарий/Параграф
∧/⊕/∨Префикс управления логической операцией к индикаторам10(⊕⠪⠝⠽⏱∧⠽⠝⠪⏱)Сценарий/Параграф
▲/▶/▼/◀Скроллинг буфера индикации в соответствующем направлении9(◀⏱)Сценарий/Параграф
Определение локальной метки⒈…⒛Сценарий/Параграф
Определение «интерактивной метки»2 сценария①…⑳ / Ⓐ…ⓏСценарий
i⃣Определение «интерактивной метки»2 сценария0⃣ …9⃣Сценарий
i⌨Выборка базовой (первой слева) клавиатуры31⌨…9⌨Сценарий/Параграф
n⌨Задание логического порядка клавиатур311⌨…987654321⌨Сценарий
n㎐Задание частоты обновления индикаторов41㎐…1000㎐Сценарий/Параграф
nd(…)Организация «дробного»5 зацикливания1¾(…;…;…;…)Сценарий/Параграф
⇡/⇣Префикс управления яркостью индикаторов610(⇣⠿⠿⠿⏱⇡⠿⠿⠿⏱)Сценарий/Параграф
nДоступ к аргументу7 итерации вызываемого циклаLine #0 Lap #1Строка отладки
iДоступ к аргументу7 итерации текущей строки параграфаLine #0 Lap #1Строка отладки
§Доступ к индексу7 активного параграфаEffect#§ Line #0Строка отладки
⎚/⎙Очистка/Печать7 строки форматированной отладки10(⎙⏱⎚⏱)Сценарий/Параграф
Шаблонное8 управление индикаторами клавиатур7(⣀◀⏱)Сценарий/Параграф

1- действие эффекта может несколько отличаться в параграфе и за его пределами
2- клавишами цифровой части клавиатуры можно в реальном времени переключать «программу»
3- игнорируется графической симуляцией, но имеет существенную необходимость для физических клавиатур
4- игнорируется графической симуляцией, но управляет качеством индикации на физических клавиатурах
5- операторы цикла разделяются символом «;» и заключающей итерацией игнорируются выпадающие за индекс числителя
6- не все модели клавиатур поддерживают ШИМ-алгоритм и могут иметь непредсказуемое моргание
7- аргументы используются любой ремаркой, которая предшествует оператору печати отладочной информации
8- за шаблон принимается любая соответствующая ремарка

Синтаксис скрипта


Если строка начинается любым символом из ascii-набора - она воспринимается как комментарий. Исключение - интерактивный режим с вводом директив.
Если строка начинается символами параграфа § с цифрой, то открывается параграф указанного индекса. Следующим символом табуляции существующий параграф дополняется очередной строкой. Любой другой символ создаст параграф вновь.
Если строка начинается табуляцией в пределах текущего параграфа (не было пустых строк), параграф продолжается дополнением этой строки.
Если цепочка символов описания эффекта встречает символ табуляции, остальные символы считаются комментарием.
Если строка начинается символом табуляции за пределами любого из параграфов (после пустых строк), она считает основным телом сценария и начинается интерпретация токенов.

Пример

§1 ㎳⅒㎳⤵⇥Clockwise curve rotation
⇥       ⠑⠄⏱⠘⠄⏱⠈⠆⏱⠀⠇⏱⠠⠃⏱⠰⠁⏱⤵⇥       Goto down
⇥       ⠔⠁⏱⠔⠂⏱⠤⠂⏱⠤⠄⏱⠢⠄⏱⠒⠄⏱⤵⇥       Goto down
⇥       ⠑⠄⏱⠱⠀⏱⠣⠀⏱⠇⠀⏱⠎⠀⏱⠜⠀⏱⤵⇥       Goto down
⇥       ⠔⠁⏱⠒⠁⏱⠊⠁⏱⠉⠁⏱⠉⠂⏱⠑⠂⏱1§⇥       Goto up to row #1

§2 ㎳⅒㎳⤵⇥Bidirectional line rotation
⇥       ⠑⠄⏱⠸⠀⏱⠔⠁⏱⠒⠂⏱⇥       Clockwise cycle
⇥       ⠑⠄⏱⠒⠂⏱⠔⠁⏱⠸⠀⏱⇥       Anticlockwise cycle

Here is beginning
Set keyboards order to 4251 and select #4 as first/left
⇥       1524⌨1⌨
Set 50ms of delay and use 100Hz of refresh
⇥       250㎳100㎐
Use paragraph #2 and initialize to 4/5 of 50Hz delay.
Loop ₂ times for ₁ times of «anticlockwise/clockwise» rotation FX
⇥       §2 §(㎳⅘㎳⤵) 5(2§ 4(⎙↝)1§ 3(⎙↝))
⇥       §2 0§↝ 5(2§ 4(⎙↝)1§ 4(⎙↝))⇥     Goto head-row of paragraph #2 and loop
⇥       §1 5(4(⎙↝))⎚

Ссылки


Скачать исходный текст можно БУДЕТ на страничке проекта.
(В данный момент исходный текст программы имеет множество закомментированных участков и разных «рудиментов» тестирования (поймите меня правильно: в сети ничего подобного я не нашёл и шагаю по «граблям»), что сильно уродует листинг)
В ближайщее время (до конца года) исходный текст появится. А пока - бесконечный цикл «тестирование-отладка-дополнения». И в основном - утром на свежую голову.

P.S.: Критикам моего бесполезного «произведения» я сразу скажу похожим рекламным лозунгом:
«Вы это ещё не делали? Тогда я сделаю это за Вас!»… ^_^

Правка: 28 окт. 2017 11:32

AlikberovПостоялецwww10 окт. 201722:17#1
+ reserved post #1

Правка: 17 окт. 2017 12:45

AlikberovПостоялецwww10 окт. 201722:17#2
Тепeрь ссылка «Глазуриста» работает как надо и эффекты можно увидеть в действии простым нажатием кнопки «Compile Glazeur-scenario»…
(После компиляции сценария прогресс-бар справа от кнопки является кликабельной ссылкой на этот новый сценарий, которую и можно публиковать здесь - быстро и просто)

P.S.: Не знаю, к месту ли…
Но не плохо же будет, если я здесь…

Объявляю мини-конкурс на лучший сценарий, который я скормлю затем своей программе и сниму всё на веб-камеру в более хорошем качестве.
Главная загвоздка в том, что если я использую абсолютно все доступные мне клавиатуры, то их число будет равно пяти (консольная Глазурь и html Глазурист поддерживают ровно 9).
Так что, на досуге можете, если захотите, набросать свой глазурь-сценарий для пяти клавиатур и я к новому году сниму новое видео моргания физических клавиатур.
(Так как проект в целом всё ещё активно жарится, в нём появляются новые интересные фишки. Достаточно стабильные из которых буду описывать на главной страничке github-проекта. Из набора значков в редакторе можно видеть, что зарезервировал красивых значков я достаточно много, но назначения им ещё не придумал)

Правка: 14 окт. 2017 15:28

AlikberovПостоялецwww10 окт. 201722:17#3
reserved post #3
MisanthropeПостоялецwww12 окт. 201717:51#4
я даже не спрашиваю, нахрена всё это надо.
AlikberovПостоялецwww3 ноя. 201715:49#5
Итaк, предварительный черновой рабочий вариант можно скачать этой ссылкой.
После распаковки, в папке «Glazeur» откройте файл Glazeur.exe (VirusTotal-анализ)…
Раньше консоль была более гибкой, но на данный момент рекомендую лишь несколько стабильных опций:
Введите «:» (двоеточие) для запуска сохранённого скрипта текущей сессии (по-умолчанию - сессия #1 и папка /session_00000001/);
Введите «.» (точку), чтобы завершить текущую сессию;
Жмите ESC во время исполнения сценария для его прерывания…

Был несколько обновлён и доработан также Глазурист. Практически всё, на что способна оригинальная консольная программа, доступно и в рамках «Глазуриста»…
Тем самым, скопировав с окна Глазуриста свой собственный глазурный сценарий в буфер обмена, его можно вставить в окно консоли правым кликом, после чего начнётся его немедленное исполнение. В папке текущей сессии файл сценария также обновится.

Как пользоваться: Что в окне консоли, что в поле ввода страницы Глазуриста, можно нажимать клавиши 0-9 левой части клавиатуры, клавиши 0-9 правой части клавиатуры, а также клавиши A-Z. Что будет переключать исполнение сценария на соответствующую метку непосредственно в режиме реального времени. Если метка определена в сценарии, нажатие клавиши, закреплённой за ней, переключит исполнение на ту метку…
(В Глазуристе достаточно полный набор токенов-значков с всплывающими подсказками, удобными для интуитивного изучения)
Естественно, в каждом сценарии свой собственный набор «интерактивных меток» со своими эффектами…

P.S.: Можете здесь сообщать о багах…
Возможно Ваша клавиатура не будет мигать, так как она единственная. В этом случае нужно перезадать свою очередь клавиатур в сценарии…

Правка: 4 ноя. 2017 5:48

/ Форум / Проекты / Утилиты

2001—2018 © GameDev.ru — Разработка игр