Проекты
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⅘⅞⏱Сценарий/Параграф
n⤴Переход строками выше в активном параграфе⤴…1⤴…99⤴Сценарий/Параграф
n⤵Переход строками ниже в активном параграфе⤵…1⤵…99⤵Сценарий/Параграф
Запуск «проигрывания» эффекта активной строки параграфаСценарий
n(…)Организация зацикливания n-раз1(➰)…99(➰⤵)Сценарий/Параграф
§(…)Управление выбранным параграфом§(0⏱⅘⏱⤵)Сценарий
Непосредственное управление индикаторами клавиатур5(⠪⠝⏱⠿⠽⏱)Сценарий/Параграф
▲/▶/▼/◀Скроллинг буфера индикации в соответствующем направлении9(◀⏱)Сценарий/Параграф
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.: Критикам моего бесполезного «произведения» я сразу скажу похожим рекламным лозунгом:
«Вы это ещё не делали? Тогда я сделаю это за Вас!»… ^_^

Правка: 20 окт. 2017 0:13

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
я даже не спрашиваю, нахрена всё это надо.

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

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