Как сделать?
…
Я наверное уже всех достал. Но у меня ещё один вопрос. Можно ли сделать так чтобы на одной локации проигрывались сразу 2 темы плейлиста одновременно и с разной громкостью?
Langraff,
Думаю можно, нужно скопировать код и примера плейлиста и заменить имена переменным ($music и $music_2), что бы они не пересекались друг с другом. И можно будет независимо запускать.
Одна особенность громкость определяется по имени файла, так что файлы возможно тоже нужно будет переименовать.
P.S. QSP допускает звучание одновременно ~32 файлов.
P.P.S. я знаю успешный пример, когда звук дождя проигрывался одновременно с музыкой (это есть в одной из пишущихся игр)
Не помогло:(
P.S. А на сей пример глянуть никак?
Langraff,
А в чем задачка то, напиши, чуть по точнее?
Есть локация и плейст из примера прикрученный к проекту в целом. Нужно сделать так чтобы на локации одновременно проигрывалось два разных трека и с разной громкостью. И чтобы они оба были зацикленные.
Langraff,
ну вот есть код из примера
Spoiler
if music_on <> music_on_prev or $music_theme <> $music_theme_prev:
CLOSE $cur_theme[track[$music_theme_prev]]
music_on_prev = music_on
$music_theme_prev = $music_theme
if $music_theme <>'':
copyarr 'cur_theme', 'tracklist_<<$music_theme>>'
track[$music_theme] = track[$music_theme]-1
if track[$music_theme] < 0:
track[$music_theme]=ARRSIZE('cur_theme')
end
end
end
if music_on=1 and $music_theme <> '':
if no isplay ($cur_theme[track[$music_theme]]):
track[$music_theme] = track[$music_theme]+1
if ARRSIZE('cur_theme')<=track[$music_theme]:track[$music_theme]=0
end
play $cur_theme[track[$music_theme]],volume
end
он работает на одну тему
Что бы сделать в точности что нужно я бы скопировал код сделав его клон.
Например вот так:
Spoiler
if music_on <> music_on_prev or $music_theme <> $music_theme_prev:
CLOSE $cur_theme[track[$music_theme_prev]]
music_on_prev = music_on
$music_theme_prev = $music_theme
if $music_theme <>'':
copyarr 'cur_theme', 'tracklist_<<$music_theme>>'
track[$music_theme] = track[$music_theme]-1
if track[$music_theme] < 0:
track[$music_theme]=ARRSIZE('cur_theme')
end
end
end
if music_on=1 and $music_theme <> '':
if no isplay ($cur_theme[track[$music_theme]]):
track[$music_theme] = track[$music_theme]+1
if ARRSIZE('cur_theme')<=track[$music_theme]:track[$music_theme]=0
end
play $cur_theme[track[$music_theme]],volume
end
if music_on_2 <> music_on_prev_2 or $music_theme_2 <> $music_theme_prev_2:
CLOSE $cur_theme_2[track_2[$music_theme_prev_2]]
music_on_prev_2 = music_on_2
$music_theme_prev_2 = $music_theme_2
if $music_theme_2 <>'':
copyarr 'cur_theme_2', 'tracklist_<<$music_theme_2>>'
track_2[$music_theme_2] = track_2[$music_theme_2]-1
if track_2[$music_theme_2] < 0:
track_2[$music_theme_2]=ARRSIZE('cur_theme_2')
end
end
end
if music_on_2=1 and $music_theme_2 <> '':
if no isplay ($cur_theme_2[track_2[$music_theme_2]]):
track_2[$music_theme_2] = track_2[$music_theme_2]+1
if ARRSIZE('cur_theme_2')<=track_2[$music_theme_2]:track_2[$music_theme_2]=0
end
play $cur_theme_2[track_2[$music_theme_2]],volume_2
end
!это для отладки
music_on
music_on_prev
$music_theme
$music_theme_prev
volume
music_on_2
music_on_prev_2
$music_theme_2
$music_theme_prev_2
volume_2
И запускать его вот так:
$music_theme = 'default'
volume = 100
music_on=1
$music_theme_2 = 'death'
volume_2 = 100
music_on_2=1
У меня так заработало.
Хотя может быть это можно и проще сделать
Заработало. Спасибище опять. Долго бы я сам до этого доходил. Осталось только книгу дописать. И можно будет заняться переносом в QSP.
А можно к этому же плейлисту прикрутить задержку при воспроизведении трека (ну чтобы один трек начал играть чуть позже другого)?
Langraff,
сделай трек с тишиной и поставь его в начало плейлиста.
В таком случае прикручу-ка я лучше тишину к треку там всего 1 сек. нужна. А вообще я думал какой-то код для этого есть. Вообщем спасибо в очередной раз.
Код можно написать, но проще, быстрее, надежнее сделать трек с тишиной.
Я уже понял. Осталось только саундтрек подобрать. Ну и самую малость… Дописать чёртову книгу.
Состряпайте ктонить примерчик “таблици рекордов”. Какая-то игра, получаешь результат, и показывается твое место в таблице рекордов. При перезаходе - таблица должна оставаться.
^^Yashko,
Таблица рекордов относительно кого? Самого себя, других своих прохождений?
^^Yashko,
Думаю можно использовать сохрание игры SAVEGAME/OPENGAME плюс обработчики $ONGLOAD/$ONGSAVE.
Игра стартует и выполняет загрузку из файла своего состояния, в котором записана доска почёта с очками.
А в конце игры список обновляется и записывается в файл.