22.05.2010, 02:17
|
#66
|
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,704
Вы сказали Спасибо: 1,424
Поблагодарили 2,367 раз(а) в 1,320 сообщениях
|
я когда-то так делал
thread void BrakeLoop1()
{
if(!brake_state) {
brake_state=true;
Sleep(World.PlaySound(MyAsset1, "sound/brake_start.wav", brake_sound, 10.0f, 100.0f, me, "a.bog0")-0.2);
while(brake_state_set)
{
Sleep(World.PlaySound(MyAsset1, "sound/brake_loop.wav", brake_sound, 10.0f, 100.0f, me, "a.bog0")-0.2);
} if(TC<1.0) //звук отпуска
Sleep(World.PlaySound(MyAsset1, "sound/brake_otpusk.wav",brake_sound, 10.0f, 100.0f, me, "a.bog0"));
else//звук остановки Sleep(World.PlaySound(MyAsset1, "sound/brake_stop.wav",brake_sound, 10.0f, 100.0f, me, "a.bog0"));
brake_state=false;
} }
и в цикл того потока добавлялось
speed=Math.Fabs(GetVelocity()); //скорость нужна по модулю
TC=GetBrakeCylinderPressure()*981-1;
if(speed<0.8)
brake_sound=0.4; else if(speed<2)
brake_sound=0.8; else
brake_sound=1;
if(TC>1.1)
{
brake_state_set=true;
BrakeLoop1();
} if(TC<1.0 or speed<0.6)
brake_state_set=false;
Последний раз редактировалось TRam_; 22.05.2010 в 02:27.
|
|
|