Как сделать звуки game maker
Как сделать звуки game maker
В прошлом выпуске №1 мы создавали лабиринт, а этом мы будем делать новую игру чем-то похожую на арконоид, но это не арконоид. В общем вот её состав:
I. В начале уровня на экране появляются шарики и стены
II. При столкновении шариков со стенами шарики меняют цвет в соответ-ствии с стенами
III. При столкновении между собой становятся также другого цвета
IV. Игрок управляет платформой, которая не должна давать мячам улетать с экрана
V. Система очков
VI. Система таймера
Это то, из чего будет состоять игра. Мы в прошлом уроке изучали, как загружать спрайты, добавлять объекты и прочее что их надо называть в соответствии, как менять разрешения экрана и ставить в полноэкранный режим, как задать управление с помощью кнопок как сделать объекты непроходимыми. Поэтому весь этот список повторять не будем, и эти элементы будут выглядеть так: «Соз-даём эффект непроходимости …». Снова объяснения не будет, поэтому если вы не читали первый номер, либо не помните, скачайте его и прочитайте сначала и после переходить к выпуску номер 2.
Манипуляция спрайтами …
Снова включаем Game Maker, видим рисунок
Объяснять где что не буду. Добавляем комнату, устанавливаем разрешение этой комнаты на 800*600. Делаем полноэкранный режим. Загружаем спрайты разноцветных блоков (c:\program files\game_maker8\sprites\ Bouncing Balls\stones). Хватит и четырёх цветных блоков. Загружаем также спрайт маленького железно шарика (на одну папку назад). Теперь все спрайты блоков дублируем, чтоб блоков каждого цвета было по два.
Теперь берём «клоны» блоков и нажимаем кнопку «Редактировать». Жмём Ctrl +Alt+P. Пишем в строке «Border» 17. Жмём ОК. Клацаем Ctrl+Alt+R. Делаем вращение на 90 градусов. Жмём Ок. Снова набираем комбинацию Ctrl +Alt+P, только теперь берём «Border» = 0. И у вас должно получится так (рисунок ниже). Повторяя прошлые манипуляции с каждым клоном блоков. Этим мы перевернём блоки. Потому что нам нужны будут различные.
Закончив с спрайтами переходим к самим объектам.
В первую очередь сделаем платформу, которой игрок будет управлять. Создаём объект, применяем к нему спрайт платформы, и делаем для него управление с клавиатуры лишь для кнопок «Влево» и «Вправо» потому что мы будем им управлять только по оси Х.
Создаем блоки по количеству спрайтов блоков. В моём случае это 8. В объекте Player (так у меня называется платформа) ставим событие столкновения с бло-ками и делаем, чтоб он не мог пройти сквозь эти блоки (Как сделать объекты не проходимыми мы рассматривали в первом уроки).
Делам объект «Boll». В «Player» ставим также столкновение, но теперь для «Boll». В нём добавляем случай «Bounce» чтоб при столкновении с платформой мячики улетали. В самом шаре делаем так …
Изменения цвета при столкновении
Теперь нам надо чтоб когда игрок все-таки не смог отбить мяч он улетает чтоб шар возвращался назад и для красоты поставим эффект зелёных (по желанию можно выбрать любой цвет под свой цвет и вкус) колец в стартовом положении. Для этого в «Boll» также ставим событие «Вне границе комнаты». Там выбераем «Jump to start», и в закладке «Draw», «Creat Effect» там всё ставим как на рисунке.
Звуки
Сначала давайте загрузим звуки. Это также как и спрайты и фоны. Загрузим стандартные звуки Game Maker из директории «C:\Program Files\Game_Maker8\ Sounds». Грузим вот эти звуки:
I. Cancel
II. click_tiny
III. Step
IV. Applause
Чтоб подключить звук в событии переходим на вкладку «Main1» и выберам «Play Sound».
В объекте «Boll» во всех событиях столкновениях поставьте звук «step».
В событии «Вне границе комнаты» ставим звук «Cancel».
В объекте «Player» в событии столкновении с «Boll» включите звук «step».
Внимание! При подключении звука смотрите, чтоб Loop ровнялось false – Don’t Loop. Иначе звук будет проигрываться зациклено!
А теперь перейдём к системе очков. Я сделал так, чтоб когда игрок отбивал платформой мяч, он получал балл. Когда он упускал мяч (он оказывался за пре-делами комнаты) у него снимался также один балл.
Нам понадобится переменная ups. Она должна быть глобальной. Выбираем комнату и переходим к закладки «Установки» и «создать код» (Рисунок ниже). Там вы также увидите переменную (на картинке) под названием timer и что он установлен с значением = 100. Это объясню позже. Она нам понадобится для создания таймера. Пока напишите и её.
Переходим к объекту «Boll» и в событии «Вне границе комнаты» нажимаем на вкладку «Control» и жмём на «Execute code». Там пишем (рисунок ниже)
Теперь переходим к объекту «Player», к событию столкновения с мячом. Там также жмём «Execute Code» и пишем всё точно такое же только «…ups-=1» за-меняем минус на плюс, чтоб очки при соприкосновении платформы и мяча при-бавлялись, а не отбавлялись.
Сейчас у нас ведётся подсчёт очков, но нам надо чтоб он выводился на экран и также нужен таймер.
Таймер и вывод переменных на экран
Для создания таймера нам нужна будет глобальная переменная под названием timer. Если вы её всё ещё не написали, то предлагаю вам вернуться в комнату щелкнуть по закладки «установки» и нажать на кнопку «Создать код» и написать всё также как на рисунке.
Теперь создаём ещё один объект и называем его «write». Не какого спрайта к нему не принимаем. Также не нужно ставить галочку «Твердый» то, как он нужен будет нам только действиями, а не видимостью.
Делаем событие «Room Start» и в нём делаем случай «Alarm0» как на рисунке.
Делаем событие «Alarm0» и в нём добавляем «Alarm0» где «number of steps:» =30. Это сделает, так что все функции, которые будут в «Alarm0» каждую секунду будут выполняться. Это нам подходит для того что б каждую секунду «Alarm0» нам снимал с переменной «timer» по единице. Для этого в «Alarm0» добавляем функцию «Execute code» и там пишем (рисунок ниже)
Теперь мы должны сделать так чтоб когда время игрока заканчивалось, ему показывался его результат в таблице рекордов, проигрывался звук аплодисмен-тов и по введению имени и закрытию окна рекордов комната переигрывалась.
Для этого в «Alarm0» жмём закладку «Control» и там нажимаем «Test Expres-sion» и в появившемся окне пишем следующие (рисунок ещё ниже)))
После добавляем открытие блока, выполнения в том случае если аргумент будет верен, под названием «Start Block». Теперь подключаем звук аплодисментов. Переходим в закладку «Score» жмём «Set Score» а там делаем как на рисунке.
Таким образом, мы присваиваем очкам переменную «ups» куда сохранялись все очки. Конечно, можно было использовать стандартную переменную «score»? но я хотел показать, как делать глобальные переменные…
Теперь мы должны чтоб сделать, чтоб выводилась таблица рекордов. Поэтому нажимаем на кнопку «Show Highscore». В том окне настраивайте всё под своё усмотрение.
После в «Main1» выбираем «Restart game» и завершаем блок действий перейжя снова на закладку «Control» и нажимаем на кнопку «End Block». В общем у вас должно получиться чтото подобное (Рисунок ниже)
А сейчас делаем, чтоб на экране выводилось количество очков и времени, ко-торое осталось (количество времени которое даётся для игры вы можете отре-дактировать, выбрав в «создать код» и заменить строку «timer=100» на любое другое число). Для этого всё в том же объекте «write» создаём событие «Draw».
В нём переходим на закладку «Draw» и клацаем по кнопке «Set Color». Там выберете любой цвет для отображения очков и контура поля, в котором они будут находиться.
После нажимаем «Добавить шрифт» и делаем приблизительно, так как это изображено на рисунке ниже. Естественно вы можете изменять параметры, но шрифт не будет отображать буквы, если вы выберите отображения только чисел. Поэтому выберете то, что отмечено на рисунке.
Жмём Ок. Снова переходим к объекту «Write» и там к событию «Draw» и до-бавляем оператор «Set Font», там выберете тот шрифт, который вам нужен.
Теперь добавляем ячейку, в которой будет находиться строка «Очки: ». Клацаем по «Draw Rectangle» и делаем так (рисунок ниже)
И второй – для строки времени делаем так (рисунок совсем низко)))…
Дальше делаем так как сделано на рисунке.
Это будет вывобить переменную «Timer» в ячейку справа. И делаем так …
Курсор
Не такая уж большая тема чтоб её делать отдельно но всеже вот…
Нам надо чтоб при запуске курсор мыши скравался так как он нам мешает. Для этого перейдя в «Boll» в события «Room start» переходим на закладку «Extra», там клацаем по значку с курсорам и остовляем всё как есть.
Всё.
Постройка уровня под наши правила
Теперь переходим к постройки уровня. Под наши запрограмированые объекты он должен выглядить примерно так… (рисунок ну совсем низко)
Как сделать звуки game maker
Добавлено (14.11.2013, 08:51)
———————————————
White1313, Вот тут ты ничего подробно не объяснил. Как именно тебе нужно сделать, чтобы спрайт менялся при движении?! Я имею ввиду:
— Ты новичок и тебе нужен лёгкий пример?
— Ты уже дружил с GML и тебе нужен хороший кодовый пример?
Сложно?
Вот у меня есть код:
Но он не работает, выдает ошибку, хотя всё правильно в принципе.
![]() | ![]() |
| AnOmalyWolf | Дата: Пятница, 15 Ноября 2013, 07:00 | Сообщение # 55 | |
| | TaDaDaPam, Я так пробовал, если у тебя работает. То видимо, я либо, закидываю песни с не тем форматом; либо у нас разные GM; либо что то упущено; либо этот код и впрямь не будет работать. Отпишись пожалуйста, у тебя действительно подобный код работал? ![]() Добавлено (14.11.2013, 19:09) 200?’200px’:»+(this.scrollHeight+5)+’px’);»> if room=room1 if room=room2 Добавлено (15.11.2013, 07:00) | |
|
| GameDev2 | Дата: Четверг, 09 Января 2014, 00:09 | Сообщение # 56 | |
| Воспроизведение звука только в кадре У меня есть Объект. В одном из событий у него стоит действие – воспроизведение звука. Как сделать так, чтобы воспроизведение звука было только если объект в кадре. Если за кадром, чтобы действие не происходило. Есть у кого GML-код или объясните, как можно было бы так сделать. | ||
|






















Отпишись пожалуйста, у тебя действительно подобный код работал? 