Гхм... Надо было сразу скинуть игру - комп накрылся((( Хорошо еще будет, если я свою игру не потеряю(
PS: пишу с сотового.
Гхм... Надо было сразу скинуть игру - комп накрылся((( Хорошо еще будет, если я свою игру не потеряю(
PS: пишу с сотового.
Последний раз редактировалось Daisy; 12.10.2012 в 23:09.
Не слышали говорящих попугаев? Тыкайте сюда!
Может, мы обидели кого-то зря,
Сбросив пару лишних мегатонн,
И горит зелёным пламенем земля,
Там, где был когда-то Пентагон!..
Profi-576 v3.2/AY-3-8912A GI/FDD-5.25'
Titus, разбирал func WaitTime( seconds ) из util.gs. При применении в коде WaitTime( 10 ), например:
SamplePlay(13); // проигрываем 13 эффект (длительность 10 сек.)
MusicVolume( 30 ); // делаем тише основную музыку по громкости 30%
WaitTime( 10 ) // ждем 10 сек
MusicVolume( 100 ); // делаем основную музыку по громкости 100%
Обратил внимание, что во время паузы 10 сек, Диззи кроме ходьбы и прыжков, остальные команды/функции не работают. Почему? Просто хотелось чтобы по истечению 10 сек, основная музыка вернулась на 100%.
------------
Нашел еще счетчик:
/////////////////////////////////////////////////////////////////////////////////
// Gameplay time counter
/////////////////////////////////////////////////////////////////////////////////
int g_timer_lasttick;
// call on begin game callback (BeginNewGame) to reset timer
func TimerReset()
{
g_timer_lasttick = 0;
GameSet(G_TIMER,0);
}
// call on load callback (LoadUserData)
func TimerOnLoad()
{
g_timer_lasttick = 0;
}
// update, call on the game update handler
func TimerUpdate()
{
if(g_timer_lasttick==0) g_timer_lasttick = gs_time();
timer_currenttick = gs_time();
delta = timer_currenttick - g_timer_lasttick;
timer = GameGet(G_TIMER);
if(delta>0) timer += delta;
GameSet(G_TIMER,timer);
g_timer_lasttick = timer_currenttick;
}
// call with reference paramters to get the play time
func TimerGetTime( hours, minutes, seconds )
{
timer = GameGet(G_TIMER)/1000; // seconds
*hours = timer / 3600;
*minutes = (timer / 60) % 60;
*seconds = timer % 60;
}
// debug display of the elapsed time
func TimerPrint()
{
h=0; m=0; s=0;
TimerGetTime(&h,&m,&s);
println(h,":",m,":",s);
}
Может лучше это использовать? Но тогда хотелось бы твоих комментариев, для лучшего понимая сути (с примером хотелось бы).
Логично, что все останавливается, ведь ты ждешь истечения определенного времени, и работают фоном только хендлеры, которые вызываются движком.
Для затихания и нарастания громкости музыки используй функцию MusicFade(fadeout, fadein), где:
fadeout - время затухания музыки в секундах
fadein - время нарастания музыки в секундах
'Когда начинает играть новая музыка, старая затихает в течении заданного временного интервала fadeout. Громкость же новой музыки, соответственно, возрастает за время интервала fadein.'
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Titus, да с fade'ами все понятно. Дело в другом. Музыка одна. Задача чтобы по истечению 10 сек музыка выровнялась по громкости на 100%. Т.е. как я понял WaitTime это для всего, а нужно привязать только к времени звучание эффекта, ну чтобы пока проигрывался эффект 10 сек., музыка звучала тише, а по истечению 10 сек, вернулась громкость на место.
Вот поэтому и подумалось, что может прикрутить сторонний счетчик времени, но пока не могу вникнуть - это оно или нет.
Продолжения перевода статей по редактору более не предвидится?![]()
Titus, я пытался сделать так:
func ActionObject_3050 ( idx )
{
if(ObjGet(ObjFind(3050),O_STATUS)==0)
{
SamplePlay(13);
MusicVolume( 30 );
ObjSet(ObjFind(3050),O_STATUS,1);
WaitTime( 10 );
MusicVolume( 100 );
}
else
{
SampleStopAll(13); // почему-то просто SampleStop не работает...
ObjSet(ObjFind(3050),O_STATUS,0);
MusicVolume( 100 );
}
}
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)