Как написать игру для ZX Spectrum 1994 г.

Приемы программирования игр - звуковое сопровождение игр. Музыкальный редактор Wham.


Звуковое сопровождение игр

Говоря о создании игровых программ, невозможно пройти мимо скромного оператора ВЕЕР, с помощью которого можно извлекать различные звуки, перекладывать на компьютерный язык известные мелодии и даже фрагменты классических произведений. Наверное, нет необходимости убеждать вас в том, насколько интереснее и богаче становится компьютерная игра, если в нес удачно вставлены различные музыкальные фразы и даже простые звуки, сопровождающие нажатия клавиш.

Мы уже использовали оператор ВЕЕР для получения различных звуковых эффектов вроде щелчков, потрескиваний и простых звуковых сигналов. Сейчас же покажем, как с его помощью получаются более сложные звуки и мелодии. Для этого чаще всего оператор ВЕЕР включается в какой-либо цикл, где один из его параметров изменяется, например:

Программа 20. ЗВУК 1.

10 BORDER 0: PAPER 0: INK 6 20 CLS

30 FOR N=1 TO 40 STEP 2 40 BEEP 0.002,N 50 NEXT N

Ниже приведен листинг еще одной программы, создающей интересный звуковой эффект.

Программа 21. ЗВУК 2.

10 BORDER 0: PAPER 0: INK 6 20 CLS

30 FOR M=1 TO 2 40 FOR N=30 TO 1 STEP -5 50 BEEP 0.07,N 60 PAUSE 1 70 NEXT N .

80 FOR N=1 TO 30 STEP 5

90 BEEP 0.07,N 100 PAUSE 1 110 NEXT N 120 NEXT M

Другой возможный вариант - использование в одном цикле нескольких операторов ВЕЕР, «настроенных» на разные длительности и высоты:

Программа 22. ЗВУК 3.

10 BORDER 0: PAPER 0: INK 6 20 CLS

30 FOR N=0 TO 20 40 PAUSE 3 45 BEEP 0.007.N+7 50 BEEP 0.003, N 60 NEXT N

Входящий в цикл оператор PAUSE регулирует длительность паузы между отдельными звуками, но, вообще говоря, его можно исключить, и тогда переход от звука к звуку будет плавным.

Теперь приведем программу простейшего синтезатора, воспроизводящего короткую музыкальную фразу:

Программа 23. МЕЛОДИЯ.

10 BORDER 0: PAPER 0: INK 6 20 CLS

30 LET TEMP=0.05 40 FOR N=1 TO 9 50 READ DL,TON 60 BEEP DL*TEMP,TON 70 NEXT N 80 STOP

100 DATA 4,9,4,9,4,9,4,9 110 DATA 8,7,4,5,4,5 120 DATA 8,4,8,2

Здесь первый,оператор READ DL считывает из списка данных DATA числа, стоящие на нечетных позициях и характеризующие длительности звуков, а второй оператор READ TON - числа, стоящие на четных местах и соответствующие высотам тона. Таким образом, при формировании списка DATA все числа необходимо группировать парами. Если эту программу запустить, то можно заметить, что мелодия очень напоминает песню «Во поле береза стояла». Чтобы с помощью этой программы воспроизвести другую мелодию, достаточно изменить данные в строках DATA и, если потребуется, верхний предел переменной N в строке 40.

Музыкальный редактор Wham

Итак, вы знаете, как извлекать из компьютера разные звуки, и даже сможете при желании написать программу, воспроизводящую простенькую мелодию. Однако на Бейсике далеко не уедешь, поэтому полезно знать, что существуют специальные программы, предназначенные для создания компьютерной музыки, называемые музыкальными редакторами. Наиболее известным из такого рода программ для ZX Spectrum является, пожалуй, редактор Wham, позволяющий писать двухголосные мелодии в диапазоне четырех октав, сдобренные различными шумовыми эффектами. Созданную или отредактированную мелодию можно сохранить на магнитной ленте или дискете в виде блока кодов и использовать затем в собственной игровой программе.

Сочинение новой мелодии

После загрузки Wham с ленты или дискеты на экране появится главное меню.

Новая мелодия записывается в режиме редактирования, войти в который можно, нажав клавишу 6. При этом на экране появится изображение клавиатуры фортепиано, двух нотных станов (десять нотных линеек), указатели октавы OCTAVE и редактируемого голоса (рабочего канала) CHANNEL 1(2), а также счетчики шагов для каждого из каналов COUNTERS (CHN1, CHN2).

Для выбора функций используются два верхних ряда клавиш, а ввод и изменение мелодии осуществляются клавишами двух нижних рядов. Если вы всерьез хотите заняться сочинением компьютерных мелодий, вам придется досконально изучить функции всех клавиш (см. Приложение 4 или [1]). Краткую же сводку команд можно получить в режиме HELP PAGE, если нажать клавишу 7 в главном меню.

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

Техника ввода целиком основана на сравнении, то есть сначала вы смотрите в книгу и запоминаете положение очередной ноты на линейках, а затем переносите ее на соответствующее место нотного стана на экране телевизора. Не забывайте при вводе нот переключать октавы клавишами 1...4 и внимательно следите за паузами. Если при вводе была допущена ошибка, нажмите клавишу 0, и все изображение возвратится назад на один шаг. После ввода десятка нот желательно послушать, что же получилось. Для этого прокрутите запись назад, нажав 9, а затем, удерживая клавишу Р, слушайте мелодию.

Можно поступить и по-другому. Для возврата к началу мелодии нажмите клавишу R, а затем, чтобы прослушать мелодию - нажмите и отпустите Q. Остановить проигрывание можно нажатием любой клавиши.

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

Но ввести мелодию будет не так-то просто, если не установить, как связаны между собой ноты и клавиши вашего Speccy. Сделать это поможет рис. 4.8. Внимательно рассмотрите его и попробуйте понажимать клавиши, сравнивая «выскакивающие» на экран ноты с теми, что находятся перед вами.

Может оказаться, что в памяти компьютера уже есть какая-то мелодия, и она мешает вашим упражнениям, занимая нотные линейки. Чтобы от нее избавиться, нажмите клавишу 7 и на вопрос ERASE CURRENT TUNE (Y/N)? отвечайте нажатием клавиши Y. После этого на экране появится начальный участок чистых нотных линеек, приглашающий вас к вводу музыкального произведения. Клавишей Т установите 1-й голос (CHANNEL 1), а затем клавишами 1...4 - нужную октаву (OCTAVE), после чего можно вводить ноты. Пауза вводится клавишей Enter, а на нотных линейках (внизу) она отображается буквой R.

Выпишем для удобства значения всех клавиш в пределах одной октавы: CS - ДО F - ФА#

А - Д0# V- СОЛЬ

Z - РЕ G - СОЛЬ#

S - РЕ# В - ЛЯ

X - МИ Н - ЛЯ#

С - ФА N - СИ

Итак, начинаем вводить мелодию, которую назовем просто МЕЛОДИЯ 1 (рис. 4.9 и табл. 1):

Здесь ОСТ. - октава, CS - клавиша Caps Shift, ENT - клавиша Enter.) Этот музыкальный фрагмент лучше всего использовать как вступление к какой-нибудь игре.

На рис. 4.10 и в табл. 2 представлена хорошо знакомая всем мелодия «В траве сидел кузнечик».

Чтобы послушать введенную мелодию, необходимо перейти в главное меню, нажав клавишу 6, а затем выбрать в нем пункт 3. Может оказаться, что темп ее

исполнения вас не устраивает. Тогда в главном меню выберите режим изменения темпа (SET TEMPO) (клавиша 5) и с помощью клавиш 8 (ускорение) и 5 (замедление) добейтесь требуемого темпа воспроизведения мелодии. Для контроля скорости исполнения в нижней части экрана высвечивается фиолетовый прямоугольник. Прослушивать только что введенную мелодию лучше всего в медленном темпе, чтобы на слух контролировать правильность звучания.

Для придания создаваемой вами мелодии ритма можно использовать для ее аранжировки барабан и шумовые эффекты. Как это сделать, описано в Приложении 4.

Компиляция и запись мелодии

Если мелодия понравилась, можно переходить к следующему этапу. Поскольку вы хотите «подшить» эту мелодию к программе, написанной на Бейсике, необходимо записать мелодию в виде подпрограммы, работающей независимо от редактора Wham. Такая подпрограмма создается с помощью специального режима компиляции WHAMPILER. Однако перед компиляцией следует в обоих каналах выставить метки конца цикла, нажав клавишу W. При этом компьютер запросит: SET LOOP HERE (Y/N)

- установить метку здесь? Если нажать клавишу Y, метки будут поставлены.

Нажав клавишу 4 в главном меню, войдите в режим компиляции. На запрос;

TUNENAME?

введите имя, под которым вы хотите записать файл, например, MEL 2. Далее программа попросит ввести адрес, с которого будет располагаться и запускаться этот файл:

ASSEMBLY ADDRESS?

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

После ряда дополнительных сообщений, о которых подробно рассказано в Приложении 4, появится стандартная строка: START TAPE, THEN PRESS ANY KEY

Включайте магнитофон на запись и нажимайте любую клавишу.

Осталось разобраться, как использовать «музыкальный блок» в игровой программе Прежде всего в программу-загрузчик следует вставить дополнительную строку с оператором LOAD, загружающую с ленты музыкальный кодовый блок: 35 LOAD ""CODE 60000

А в саму игровую программу для исполнения мелодии нужно добавить строки: 10 CLEAR 59999 20 РОКЕ 60035,230 30 РОКЕ 60026,0 230 RANDOMISE USR 60000

10 - обнуляются все переменные и массивы, выполняется оператор CLS, изменяется адрес RAMTOP;

20 - в ячейку памяти с адресом 60035 записывается число в пределах от 230 до 255, что позволяет изменять темп проигрывания мелодии;

30 - в ячейку памяти с адресом 60026 записывается число в пределах от 0 до 7, которое во время исполнения мелодии устанавливает цвет бордюра;

230 - воспроизведение мелодии. Эту строку можно поставить в любом месте игровой программы, в зависимости от ее сюжета.

Если вы не до конца поняли, как вставить созданную и откомпилированную

мелодию в игровую программу, посмотрите, как это сделано в игре СОКОБАН, описанной в следующей главе.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Ликбез - Немного о русском языке.
Reviews - Tendencies of ZX Spectrum game industry development.
Взгляд - Тест "Не гений ли вы?".
Приколы нашего городка - Как я разговаривал с Инопланетянином.
interview with Piesiu - interview with famous pixel artist.

В этот день...   29 марта