Warsztat - Programowanie gier

Marzec 17, 2010, 00:05:47 *
Witamy, Gość. Zaloguj się, lub zarejestruj proszę.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Warsztat, Regulamin forum, #warsztat, Wiki, FAQ, NoPaste, Mapa
 
   Strona główna   Pomoc Szukaj Zaloguj się Rejestracja  
Strony: 1 [2]
  Drukuj  
Autor Wątek: Odtwarzanie MP3  (Przeczytany 1346 razy)
Pawel1503
Jr. Member
**

wiadomości: 91


C++ WinAPI OpenGL


Zobacz profil WWW
« Odpowiedz #15 : Styczeń 19, 2010, 10:02:43 »

Wielkie dzięki - już dobrze działa. Tylko mam jeszcze ostatnie pytanie. Mam dźwięk który ilustruje zderzenie. Chciałbym żeby wykonywał się on w przykładowej instrukcji IF:

Kod
if (graczwrog == 1)
{
graczz = graczz + 30;
}
      
I teraz dodam odtwearzanie dźwięku:

Kod
if (graczwrog == 1)
{
//zmienna, do kontroli głośności
  using namespace audiere;
 
   //tworzymy obiekt odwołujący się do urządzenia
   AudioDevicePtr audiodevice(OpenDevice());
   //wgrywamy plik ostatni parametr true, oznacza że nie wczytujemy całego pliku do pamięci.
   OutputStreamPtr st2(OpenSound(audiodevice, "Dzwieki/soundimpress.eu_zderzenie_trzask_081111.mp3",true));
 
   //ustawiamy siłę dźwięku
   st2->setVolume(volume);
   //nie chcemy by track był zapętlony
   st2->setRepeat(false);
   //odtwarzamy
st2->play();
}

I gra się kompiluje i uruchamia ale gdy spełniam ten warunek to gra się spowalnia przez sekundę a dźwięku jak niema - tak nie ma.
Zapisane

C++ WinAPI OpenGL
www.pawelos.cba.pl
Liosan
SuperHero Member
******

wiadomości: 1146



Zobacz profil
« Odpowiedz #16 : Styczeń 19, 2010, 10:35:59 »

Hm, no spowolnienie to jest dlatego, że wczytujesz plik za każdym razem. Wczytaj go raz, a pod if-em tylko odtwarzaj.

Liosan
Zapisane

"A ja urodziłem się i żyję, by kreować - robić żywe..."
PsichiX
Full Member
***

wiadomości: 165


ΨΧΞ


Zobacz profil WWW
« Odpowiedz #17 : Styczeń 19, 2010, 10:36:51 »

bo OutputStreamPtr to wskaznik intelignetny ktory w trakcie zniszczenia swojego obiektu zatrzymuje i usuwa dzwiek, musisz wsadzic te obiekty do kontenera lub jako obiekty globalne.
« Ostatnia zmiana: Styczeń 19, 2010, 10:38:25 wysłane przez PsichiX » Zapisane
Liosan
SuperHero Member
******

wiadomości: 1146



Zobacz profil
« Odpowiedz #18 : Styczeń 19, 2010, 10:40:59 »

Aha, czyli to co ja powiedziałem pomogłoby na obie rzeczy Smiley

Liosan
Zapisane

"A ja urodziłem się i żyję, by kreować - robić żywe..."
Pawel1503
Jr. Member
**

wiadomości: 91


C++ WinAPI OpenGL


Zobacz profil WWW
« Odpowiedz #19 : Styczeń 19, 2010, 11:01:34 »

Ok zrobiłem tak jak napisał Liosan.

W funkcji WinMain dałem coś takiego:
Kod
    //zmienna, do kontroli głośności
  using namespace audiere;
 
   //tworzymy obiekt odwołujący się do urządzenia
   AudioDevicePtr audiodevice(OpenDevice());

//wgrywamy plik ostatni parametr true, oznacza że nie wczytujemy całego pliku do pamięci.
   OutputStreamPtr st2(OpenSound(audiodevice, "Dzwieki/soundimpress.eu_zderzenie_trzask_081111.mp3",true));

A w IF:

Kod
if (graczwrog == 1)
{
 
   //ustawiamy siłę dźwięku
   st2->setVolume(volume);
   //nie chcemy by track był zapętlony
   st2->setRepeat(false);
   //odtwarzamy
st2->play();
graczz = graczz + 30;
}

Ale on mi wywala takie błędy:

1>main.cpp(1226): error C2065: 'st2' : undeclared identifier
1>main.cpp(1226): error C2227: left of '->setVolume' must point to class/struct/union/generic type
1>          type is ''unknown-type''
1>main.cpp(1228): error C2065: 'st2' : undeclared identifier
1>main.cpp(1228): error C2227: left of '->setRepeat' must point to class/struct/union/generic type
1>          type is ''unknown-type''
1>main.cpp(1230): error C2065: 'st2' : undeclared identifier
1>main.cpp(1230): error C2227: left of '->play' must point to class/struct/union/generic type
1>          type is ''unknown-type''
Zapisane

C++ WinAPI OpenGL
www.pawelos.cba.pl
PsichiX
Full Member
***

wiadomości: 165


ΨΧΞ


Zobacz profil WWW
« Odpowiedz #20 : Styczeń 19, 2010, 11:20:38 »

nie widzi obiektow, daj je jako globalne lub wsadz do kontenera (wsadzenie w winmain nie czyni obiektu globalnym).
A using namespace po includzie naglowka audiere.
« Ostatnia zmiana: Styczeń 19, 2010, 11:24:18 wysłane przez PsichiX » Zapisane
Pawel1503
Jr. Member
**

wiadomości: 91


C++ WinAPI OpenGL


Zobacz profil WWW
« Odpowiedz #21 : Styczeń 19, 2010, 11:40:32 »

Ok już działa - wielkie dzięki wszystkim za pomoc i pozdrawiam !!!
Zapisane

C++ WinAPI OpenGL
www.pawelos.cba.pl
Strony: 1 [2]
  Drukuj  
 
Skocz do:  

Hosting: Polska Strefa - Ogłoszenia
Powered by SMF 1.1.7 | SMF © 2006, Simple Machines LLC