Skocz do zawartości

Jak zrobić radio w grze?


Marot

Rekomendowane odpowiedzi

Mam pomysł. umieszczę folder /mp3 w folderze programu. I niech tam użytkownik wrzuci muzykę jaką lubi i jaka mu pasuje. Czy można jakoś pobrać tytuł utworu lub nazwę pliku z danego folderu i dodać do gry, by się odtwarzał, a aktualny tytuł zapisywał do zmiennej??

 

Moglibyście mi napisać kod?? :]

 

Żeby jeżeli folder istnieje, jeżeli plik typu mp3 znajduje się w środku //tyle umiem samemu :D

żeby pobrał jego nazwę i wpakował do funkcji dodaj dźwięk (lub podmień - może byłoby lepiej)

a potem go odtworzył,

a jak się skończy odtwarzać to niech znajdzie następny i zrobi to samo,

a jak się skończą nowe pliki to niech zacznie od początku. (może jakaś funkcja policz pliki, i w pętli wtedy wstawić??)

 

Pomóżcie :boxed:

Odnośnik do komentarza
Udostępnij na innych stronach

Jeszcze raz i powoli.

 

Przeszukiwanie katalogu:

 

n=0;
muza[0]=file_find_first("mp3/*.mp3",0); //znajduje pierwszy plik z muzyką mp3
while(muza[n]!='') //póki nie sprawdzi wszystkich plików...
{
n+=1;
muza[n]=file_find_next(); //...sprawdza następne
}

 

Nie sprawdzałem, ale powinno być. :P

 

Potem już tylko wystarczy napisać jakieś odtwarzanie muzyki.

 

 

Ale co w wyniku tego przeszukiwania otrzymujemy?? Program dodaje te wszystkie pliki, które odnalazł?? Jeśli tak to jak je nazywa??

 

Znalazłem w pomocy funkcję: sound_set_search_directory(dir)

 

Czy nie wykonuje ona tego, co napisałeś w kodzie?? Co teraz zrobić, by odtwarzało te pliki, a najlepiej jeszcze robiło sound_get_name(ind), czyli

 

global.piosenka=sound_get_name(ind) // co powinno być jako ind??

Odnośnik do komentarza
Udostępnij na innych stronach

sound_set_directory nie robi tego samego. Jeśli patrzyłeś do helpa, powinieneś doczytać. :/

 

Jeśli chcesz korzystać z mojego skryptu, to wiedz, że...

1. Zapisuje on do tablicy (taka jakby lista) wszystkie mp3 z podanego katalogu.

2. Jeśli chcesz puścić np. 5 kawałek z listy, musisz użyć funkcji sound_replace(), a jako argument fname wpisać muza[5] . No i potem oczywiście użyć sound_play(), żeby się odtworzył. :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jakiej składni (repeat, for, while,...) należy użyć, by odtwarzało wszystkie pliki z folderu, a jak się skończą to zaczynało od nowa.

 

Użyłem

{
{
n=0;
m=0;
muza[0]=file_find_first("mp3/*.mp3",0);
while(muza[n]!='')
{
n+=1;
muza[n]=file_find_next();
}
}
{

repeat(n)  // jaką składnię tu użyć??
{
sound_replace(HURTMaryCzary,muza[m],3,true);
sound_play(HURTMaryCzary);
}
}
}

 

I muzyka się nie odtwarza. Myślałem, że opcja sound_play() odtwarza dźwięk i następne polecenie jest wykonywane po skończeniu dźwięku, a tu chyba nie dokońca.

 

 

Zamiast repeat miałem

 

while(m!=n)

{

m+=1;

... //reszta poleceń

}

ale od razu dochodziło do końca folderu

 

I miałem jeszcze niezłą przygodę :] Już myślałem, że przekroczyłem wymagania, bo mi się wszystko cięło, samochód przyspieszał poklatkowo, a o pliku stronnicowania lepiej nie mówić. Chyba dałem mu rozkaz wpakowywania 7MB muzyki co jakiś kawałem milisekundy, przez jaką wykonuje skrypt. (w stepie dodałem że jak m=n to m=0).

 

naszczęście jak wpakowałem to w komentarz ( /* blebleble */ ) to ruszyło płynnie. Przy moich 768MB (czy coś koło tego) RAM zużywa 450MB pliku stronnicowania. To już realne wymagania.

 

 

Co zaproponujecie... :sp_ike:

Odnośnik do komentarza
Udostępnij na innych stronach

Nie działa, bo robisz źle. Tu masz prawidłowy kod. Poza tym przed napisaniem posta powinieneś zawsze zastanowić się jaka funkcja służy do czego i co z tego wyniknie.

 

//create

n=0;

m=0;

muza[0]=file_find_first("mp3/*.mp3",0);

while(muza[n]!='')

{

n+=1;

m+=1;

muza[n]=file_find_next();

}

n=0;

 

//do step

if !sound_isplaying(HURTMaryCzary)

{ if n<=m

{

sound_replace(HURTMaryCzary,muza[n],3,true);

sound_play(HURTMaryCzary);

}

else

n=0;

}

 

P.S. Niesprawdzone, ale zaufaj. :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...