RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2427348 views

Я наверное уже всех достал. Но у меня ещё один вопрос. Можно ли сделать так чтобы на одной локации проигрывались сразу 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.
Игра стартует и выполняет загрузку из файла своего состояния, в котором записана доска почёта с очками.
А в конце игры список обновляется и записывается в файл.

Log in or Register to post comments.