Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

ALLEGRO - sprawdzanie czy dzwiek jest odtwarzany

Ostatnio zmodyfikowano 2014-05-11 21:03
Autor Wiadomość
ggerek
Temat założony przez niniejszego użytkownika
ALLEGRO - sprawdzanie czy dzwiek jest odtwarzany
» 2014-05-11 19:58:42
Jest to mój pierwszy post na tym forum i mam nadzieje, że się będziemy dobrze rozumieć :P

Piszę grę i napotkałem problem z dźwiękiem.
Jak mogę sprawdzić czy muzyka/dźwięk jeszcze jest odtwarzana ?
cos w tym stylu :
C/C++
if( muzyka nie gra && namierzyles na przycisk menu ) // to z menu to przyklad
{
    play_sample( menustart.dzwiek, 30, 127, 1000, 0 );
}
EDIT: Wszystko co znalazłem w dokumentacji nie może być używane jako bool ;/
P-109727
pekfos
» 2014-05-11 20:09:06
Da się, ale nie dla sampli odpalanych przez play_sample(). Graj przez voice_start() i wtedy sprawdzasz przez voice_check(). Tu jednak jest znacznie więcej zachodu z odtwarzaniem, więc opakowanie tego w klasę może się bardzo przydać ;)
P-109729
ggerek
Temat założony przez niniejszego użytkownika
» 2014-05-11 20:37:56
Dzięki Pekfos :)

Zmieniłem sobie wszystko na voice tylko, że z tego co wyczytałem to
voice_check()
 zwraca czy aktualny dźwięk jest  zaalokowany/przydzielony. Z tego co rozumiem to mógłbym tego użyć przed funkcją
allocate_voice()
, bo inaczej zawsze zwróci prawdę. Mam sytuacje gdzie już 2 dźwięki są przydzielone/zaalokowane i gdy skończy się jeden ma zacząć się drugi.
P-109744
ggerek
Temat założony przez niniejszego użytkownika
» 2014-05-11 21:03:18
Czasem nie mogę uwierzyć jak mogłem na to nie wpaść :D
ROZWIAZANIE:
C/C++
if( mouse_x > 900 && mouse_x < 1390 && mouse_y > 50 && mouse_y < 220 )
{
    event.nstart = true; // nstart to namierzony start myszką
    if( voice_get_position( 1 ) == - 1 )
    {
        event.dzstart = true; // dzstart to dzwiek startu
    }
    else
         event.dzstart = false; // jesli true to gra muzyka jesli false to nie gra
   
}
else
{
    event.nstart = false;
}

To takie rozwiazanie z przykladowym kodem dla innych z tym problemem.
P-109747
« 1 »
  Strona 1 z 1