Оглавление "Программирование для игр"

Для многих занятия музыкой являются одними из самых скучных предметов. Но среди них есть самый ненавистный – сольфеджио. Подобно бордюрам/поребрикам, которые отбивают у многих желание ездить на велосипеде, сольфеджио может на всю жизнь отбить желание заниматься музыкой. Те годы учёбы уже позади, и как импровизатор могу сказать, что главная проблема заключается не в предмете, а в неподходящей для данного человека методике. Одним подходит классика, другие предпочтут эстраду, третьи джаз, а четвёртые просто хотят научиться играть на гитаре популярные песни. Как “взбодрить” интерес к скучным занятиям? Придумать игру.

Музыкальные интервалы – это таблица умножения в музыке, которая многим так и не далась. Попробуем взять эту высоту при помощи "настольной" игры. Для этого нам потребуются клавиатура пианино, синтезатора или нарисованная, а также фишки (по одной для каждого игрока) и два игральных кубика d6. В начале игры фишки устанавливаются на старт - самую левую (или правую) клавишу. Для определения права первого хода бросается жребий. После этого игроки попеременно бросают игральные кубики и перемещают фишку на количество выпавших полутонов, после чего называют интервал. Победителем объявляется игрок, чья фишка первая добралась до конца клавиатуры.

Получилась простая ходилка по клавишам. После её осваивания игру можно усложнить, например, все большие интервалы дают +1 полутон (выпала большая терция, переместили на кварту) , малые дают -1 полутон (выпала малая септима – переместили на большую сексту). Условия по перемещению можно также задать и для других интервалов.

После изучения простых интервалов переходите к изучению сложных интервалов, для чего потребуется четыре броска кубика d6 (два по два).

К недостатку данной игры можно отнести невозможность получения чистой примы, но при помощи мобильного приложения мы это исправим, а также сделаем игру “более продвинутой” – голосовой помощник будет сам подкидывать игральный кубик и называть интервал. Для этого необходимо сопоставить названия интервалов их тоновому составу:

0 – чистая прима
1 – малая секунда
2 – большая секунда
3 – малая терция
4 – большая терция
5 – чистая кварта
6 – тритон
7 - чистая квинта
8 – малая секста
9 – большая секста
10 – малая септима
11 – большая септима
12 – чистая октава

Создадим приложение при помощи Thunkable X, чтобы его можно было запускать на Android и iOS. В качестве названия свойств будут выступать значения полутонов, а в качестве их значений – названия интервалов. Получится своего рода словарь с быстрым поиском значений.

Для простоты создадим исходные данные в формате JSON:

{
"0": "чистая прима",
"1": "малая секунда",
"2": "большая секунда",
"3": "малая терция",
"4": "большая терция",
"5": "чистая кварта",
"6": "тритон",
"7": "чистая квинта",
"8": "малая секста",
"9": "большая секста",
"10": "малая септима",
"11": "большая септима",
"12": "чистая октава"
}

Создайте новый проект в Thunkable X. Добавьте в него синтезатор речи Text To Speech и холст Canvas, который будет использоваться в качестве полноэкранной кнопки. Бобра с холста можно убрать, но в дальнейшем можно и его заставить поработать - изобразить на холсте клавиатуру и пусть он прыгает на интервал, а задача игроков - назвать этот интервал. Но пока сделаем простой рабочий вариант и разместим на холсте подсказку в виде текcтового поля "Нажмите на экран".

При нажатии на холст генерируем случайное целое из нужного нам диапазона. После этого озвучивается значение свойства – музыкальный интервал, на который нужно переместить свою фишку.

Вы тоже спрашиваете себя, для чего в школе изучал несколько лет BASIC, когда практические задачи можно решать столь элементарно?