Game Maker - создание игр | HellRoom Games

Game Maker | GameMaker: Studio [Game-Maker.ru] => Работа со звуком / музыкой / видео => Тема начата: Solar Off Roader от Апрель 10, 2022, 09:12:39



Название: Вопрос по звуку и длине воспроизведения
Отправлено: Solar Off Roader от Апрель 10, 2022, 09:12:39
Всем привет. Такой вопрос, звуковая дорожка (гул двигателя) - 10 секунд. Использую следующий код в step:

audio_play_sound(sound_gul_dvigatelya, 10, true);


Получается с каждым шагом он запускает его с самого начала и звук накладывается друг на друга

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


Название: Re: Вопрос по звуку и длине воспроизведения
Отправлено: Лер да Рим от Апрель 10, 2022, 21:15:55
Есть же функция (https://manual.yoyogames.com/GameMaker_Language/GML_Reference/Asset_Management/Audio/audio_is_playing.htm)

Ну или просто вручную таймером.


Название: Re: Вопрос по звуку и длине воспроизведения
Отправлено: Aristokrat952 от Апрель 10, 2022, 21:16:22
Вообще, должна быть функция зацикливания, че-нибудь с приствкой "loop". И останется ее только запускать в момент старта машины и останавливать проигрывание в момент остановки машины.

НУ... или более плохие реализации:
- Использовать событие alarm к примеру;
- Или завести переменную, которую каждый шаг инкрементировать, и если она равняется 10 * room_speed (10 секунд тобишь), то только тогда воспроизводить звук и снова обнулять переменную. Короче самому событие alarm написать

Добавлено: Апрель 10, 2022, 21:16:36
 sm_angry плюсик увел, засранец


Название: Re: Вопрос по звуку и длине воспроизведения
Отправлено: Лер да Рим от Апрель 10, 2022, 21:19:25
Вот сплю и вижу как бы их стыбзить  _gg_:


Название: Re: Вопрос по звуку и длине воспроизведения
Отправлено: Solar Off Roader от Апрель 10, 2022, 23:33:20
Получилось, весь день ковырял. Без audio_is_playing всё грустно:) Кому то однозначно пригодиться. Получается так:


if !audio_is_playing(sound_gul_dvigatelya) and global.gul_dvigatelya = true { audio_play_sound(sound_gul_dvigatelya, 10, true)};
if global.gul_dvigatelya = false { audio_stop_sound(sound_gul_dvigatelya)};