Game Maker - создание игр | HellRoom Games
Январь 16, 2025, 07:18:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Воспроизведение звуков  (Прочитано 10368 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Daniil
Посетитель
**

Репутация: -1
Offline Offline

Пол: Мужской
API: GameMaker 8.1 Standard
Сообщений: 15



« : Февраль 04, 2017, 22:59:56 »

Всем привет! Опять я обращаюсь за вашей помощью. На этот раз у меня возникла проблема со звуками.Использую старый звуковой движок(с новым вообще не разобрался).
Мне нужно чтоб звук воспроизводился только тогда, когда нажата клавиша(для ходьбы).
Код:
if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_down) or keyboard_check_pressed(vk_left) or keyboard_check_pressed(vk_up)
{
 
  sound_play(snd_walk); 
  }

Тут звук воспроизводиться когда клавишу нажал, когда нажимаешь второй раз звуки накладываются друг на друга.Если кто-то шарит, то подскажите пожалуйста.
Записан
Slug2002
Активный участник
*****

Репутация: 20
Offline Offline

Пол: Мужской
Награды:
2 место в HellRoom Jam XЗа постоянность! [10 дней на форуме]
API: GameMaker Studio Pro
Деятельность: GML, Network, Ultimate 3D, Java Script
Сообщений: 272


слава векторам


« Ответ #1 : Февраль 04, 2017, 23:07:54 »

Попробуйте так:
Код:
if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_down) or keyboard_check_pressed(vk_left) or keyboard_check_pressed(vk_up)
{
  sound_loop(snd_walk);
}
if keyboard_check_released(vk_right) or keyboard_check_released(vk_down) or keyboard_check_released(vk_left) or keyboard_check_released(vk_up)
{
  sound_stop(snd_walk);
}
Записан

На джеме побеждает не десяток однообразных уровней, а один, но сделанный на совесть.
Fur
skypo
GM Pro user
*

Репутация: 63
Offline Offline

Пол: Мужской
Награды:
500 сообщений!За постоянность! [50 дней на форуме]
API: GameMaker Studio Pro
Сообщений: 809


WWW
« Ответ #2 : Февраль 04, 2017, 23:08:02 »

используй
if !audio_is_playing (snd_walk) {audio_play_sound(snd_walk, 0, false)};
вместо sound
Записан
Daniil
Посетитель
**

Репутация: -1
Offline Offline

Пол: Мужской
API: GameMaker 8.1 Standard
Сообщений: 15



« Ответ #3 : Февраль 04, 2017, 23:19:01 »

Попробуйте так:
Код:
if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_down) or keyboard_check_pressed(vk_left) or keyboard_check_pressed(vk_up)
{
  sound_loop(snd_walk);
}
if keyboard_check_released(vk_right) or keyboard_check_released(vk_down) or keyboard_check_released(vk_left) or keyboard_check_released(vk_up)
{
  sound_stop(snd_walk);
}

Всё работает(почти). Когда по диагонали идёшь, а потом 1 кнопку отпускаешь, звук перестаёт играть.

Добавлено: Февраль 04, 2017, 23:20:07
используй
if !audio_is_playing (snd_walk) {audio_play_sound(snd_walk, 0, false)};
вместо sound
Я тебя не понял    , можешь поподробней?
Записан
Slug2002
Активный участник
*****

Репутация: 20
Offline Offline

Пол: Мужской
Награды:
2 место в HellRoom Jam XЗа постоянность! [10 дней на форуме]
API: GameMaker Studio Pro
Деятельность: GML, Network, Ultimate 3D, Java Script
Сообщений: 272


слава векторам


« Ответ #4 : Февраль 04, 2017, 23:23:14 »

Попробуй этот
Код:
if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_down) or keyboard_check_pressed(vk_left) or keyboard_check_pressed(vk_up)
{
  sound_loop(snd_walk);
}
if speed=0 {sound_stop(snd_walk)}
Записан

На джеме побеждает не десяток однообразных уровней, а один, но сделанный на совесть.
Fur
Daniil
Посетитель
**

Репутация: -1
Offline Offline

Пол: Мужской
API: GameMaker 8.1 Standard
Сообщений: 15



« Ответ #5 : Февраль 04, 2017, 23:25:28 »

Попробуй этот
Код:
if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_down) or keyboard_check_pressed(vk_left) or keyboard_check_pressed(vk_up)
{
  sound_loop(snd_walk);
}
if speed=0 {sound_stop(snd_walk)}
Такой же косяк
Записан
Fur
Абы-какой
GM Pro user
*

Репутация: 463
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]Третье место на HellRoom Jam #9 [Flucoldache]За лояльность! [+300 репутации]Настоящий игродел!Боже мой, посмотрите на эту медальку! Первое место на HellRoom Jam #6
API: Game Maker 8.0 Lite
Деятельность: Бурная.
Сообщений: 3673


Лисяток тебе.


« Ответ #6 : Февраль 04, 2017, 23:32:22 »

Попробуй этот
Код:
if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_down) or keyboard_check_pressed(vk_left) or keyboard_check_pressed(vk_up)
{
  sound_loop(snd_walk);
}
if speed=0 {sound_stop(snd_walk)}
Ну я же просил. Не знаешь - не лезь.
Записан

В одной отдельно взятой фразе не должно быть больше миллиона муравьёв, пусть даже она — научного труда о муравьях.

Hyperflex
Daniil
Посетитель
**

Репутация: -1
Offline Offline

Пол: Мужской
API: GameMaker 8.1 Standard
Сообщений: 15



« Ответ #7 : Февраль 04, 2017, 23:47:34 »

Попробуй этот
Код:
if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_down) or keyboard_check_pressed(vk_left) or keyboard_check_pressed(vk_up)
{
  sound_loop(snd_walk);
}
if speed=0 {sound_stop(snd_walk)}
Ну я же просил. Не знаешь - не лезь.

Если я сюда обратился - это значит, что я не смог найти нужную информацию самостоятельно.
Записан
Slug2002
Активный участник
*****

Репутация: 20
Offline Offline

Пол: Мужской
Награды:
2 место в HellRoom Jam XЗа постоянность! [10 дней на форуме]
API: GameMaker Studio Pro
Деятельность: GML, Network, Ultimate 3D, Java Script
Сообщений: 272


слава векторам


« Ответ #8 : Февраль 04, 2017, 23:48:44 »

Попробуй это:
Код:
if not sound_isplaying(snd_walk) {
if keyboard_check_pressed(vk_down) {sound_loop(snd_walk)}
if keyboard_check_pressed(vk_left) {sound_loop(snd_walk)}
if keyboard_check_pressed(vk_up) {sound_loop(snd_walk)}
if keyboard_check_pressed(vk_right) {sound_loop(snd_walk)}}


if x=xprevious {if y=yprevious {sound_stop(snd_walk)}}
Записан

На джеме побеждает не десяток однообразных уровней, а один, но сделанный на совесть.
Fur
Daniil
Посетитель
**

Репутация: -1
Offline Offline

Пол: Мужской
API: GameMaker 8.1 Standard
Сообщений: 15



« Ответ #9 : Февраль 04, 2017, 23:52:24 »

Попробуй это:
Код:
if not sound_isplaying(snd_walk) {
if keyboard_check_pressed(vk_down) {sound_loop(snd_walk)}
if keyboard_check_pressed(vk_left) {sound_loop(snd_walk)}
if keyboard_check_pressed(vk_up) {sound_loop(snd_walk)}
if keyboard_check_pressed(vk_right) {sound_loop(snd_walk)}}


if x=xprevious {if y=yprevious {sound_stop(snd_walk)}}

Вообще ничего не происходит
Записан
Slug2002
Активный участник
*****

Репутация: 20
Offline Offline

Пол: Мужской
Награды:
2 место в HellRoom Jam XЗа постоянность! [10 дней на форуме]
API: GameMaker Studio Pro
Деятельность: GML, Network, Ultimate 3D, Java Script
Сообщений: 272


слава векторам


« Ответ #10 : Февраль 05, 2017, 00:08:02 »

Ненавижу Студию, только из - за того что предыдущие скрипты только на Восьмёрке работали.
Попробуй это:
Код:
if not audio_is_playing(snd_walk) {
if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_down) or keyboard_check_pressed(vk_left) or keyboard_check_pressed(vk_up)
{
audio_play_sound(snd_walk,0,1)
}}
if x=xprevious {if y=yprevious {audio_stop_sound(snd_walk)}}
Записан

На джеме побеждает не десяток однообразных уровней, а один, но сделанный на совесть.
Fur
skypo
GM Pro user
*

Репутация: 63
Offline Offline

Пол: Мужской
Награды:
500 сообщений!За постоянность! [50 дней на форуме]
API: GameMaker Studio Pro
Сообщений: 809


WWW
« Ответ #11 : Февраль 05, 2017, 00:12:23 »

Я тебя не понял    , можешь поподробней?
просто замени строку, куда уж проще
Записан
Daniil
Посетитель
**

Репутация: -1
Offline Offline

Пол: Мужской
API: GameMaker 8.1 Standard
Сообщений: 15



« Ответ #12 : Февраль 05, 2017, 00:16:22 »

Ненавижу Студию, только из - за того что предыдущие скрипты только на Восьмёрке работали.
Попробуй это:
Код:
if not audio_is_playing(snd_walk) {
if keyboard_check_pressed(vk_right) or keyboard_check_pressed(vk_down) or keyboard_check_pressed(vk_left) or keyboard_check_pressed(vk_up)
{
audio_play_sound(snd_walk,0,1)
}}
if x=xprevious {if y=yprevious {audio_stop_sound(snd_walk)}}
Эх, тоже не работает, вообще. Может это у меня с гм проблемы?
Записан
Slug2002
Активный участник
*****

Репутация: 20
Offline Offline

Пол: Мужской
Награды:
2 место в HellRoom Jam XЗа постоянность! [10 дней на форуме]
API: GameMaker Studio Pro
Деятельность: GML, Network, Ultimate 3D, Java Script
Сообщений: 272


слава векторам


« Ответ #13 : Февраль 05, 2017, 00:17:30 »

Не могли бы Вы мне тогда показать код движения?
Записан

На джеме побеждает не десяток однообразных уровней, а один, но сделанный на совесть.
Fur
AndrewVideoGames
Главный Модератор
*

Репутация: 821
Offline Offline

Пол: Мужской
Награды:
За постоянность! [500 дней на форуме]За лояльность! [+750 репутации]5000 сообщений!За помощь новичкам!
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316



« Ответ #14 : Февраль 05, 2017, 00:18:29 »

Вы уверены, что воспроизводить звук нужно только в момент нажатия(keyboard_check_pressed), а не пока клавиша зажата(keyboard_check)?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.077 секунд. Запросов: 31.