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

C++ allegro dzwięk.

Ostatnio zmodyfikowano 2010-03-08 17:10
Autor Wiadomość
Bartaz
Temat założony przez niniejszego użytkownika
C++ allegro dzwięk.
» 2010-03-07 16:12:54
Witam mam taki problem , leci sobie muzyka a gdy się skończy to jest ten błąd z "nie wysyłaj"
P-14706
Elaine
» 2010-03-07 17:01:39
Aha.
P-14707
TheLukon
» 2010-03-07 17:05:19
Fajnie!;D
P-14708
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-03-07 17:08:31
No i co mam zrobic?
Tam gdzie jest funkcja zmienna itp do dzwieku zaznaczylem dlugimi komentarzami z gwiazdek
Kod:
C/C++
#include <allegro.h>
volatile long speed = 0;
void increment_speed()
{
    speed++;
}
END_OF_FUNCTION( increment_speed );
LOCK_VARIABLE( speed );
LOCK_FUNCTION( increment_speed );
class Cpostac
{
public:
    int x, y;
    int s, w;
};
class postac
{
public:
    int zycie;
    int ochrona;
    int magia;
    int sila;
    int doswiadczenie;
    int level;
    int zloto;
};
class wrogowie
{
public:
    int zycie;
    double x;
    double y;
    double s;
    double w;
};
bool kolizja( double x1, double y1, double s1, double w1, double x2, double y2, double s2, double w2 )
{
    if( x2 <= x1 + s1 && x2 > x1 && y2 >= y1 && y2 <= y1 + w1 ) return true; else
    if( x2 <= x1 + s1 && x2 > x1 && y2 + w2 >= y1 && y2 + w2 <= y1 + w1 ) return true; else
    if( x2 + s2 <= x1 + s1 && x2 + s2 > x1 && y2 >= y1 && y2 <= y1 + w1 ) return true; else
    if( x2 + s2 <= x1 + s1 && x2 + s2 > x1 && y2 + w2 >= y1 && y2 + w2 <= y1 + w1 ) return true;
    else return false;
   
};
Cpostac ludeka, lasa, doma, plecaka, toma, wiadomosca, wiadomosc1a, druzkaa, bramaa, liniaa;
postac bohater;
wrogowie wilka;
int main()
{
    bohater.zycie = 1000;
    bohater.magia = 0;
    bohater.sila = 3;
    bohater.ochrona = 3;
    bohater.zloto = 0;
    bohater.doswiadczenie = 0;
    bohater.level = 0;
    allegro_init();
    install_keyboard();
    install_timer();
    install_int_ex( increment_speed, BPS_TO_TIMER( 107 ) );
    install_sound( DIGI_AUTODETECT, MIDI_AUTODETECT, "" );
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 1000, 600, 0, 0 );
    BITMAP * bufor = NULL;
    BITMAP * tlo = NULL;
    BITMAP * ludek = NULL;
    BITMAP * prze = NULL;
    BITMAP * ludek_lewo = NULL;
    BITMAP * ludek_prawo = NULL;
    BITMAP * ludek_tyl = NULL;
    BITMAP * las = NULL;
    BITMAP * dom = NULL;
    BITMAP * plecak = NULL;
    BITMAP * tom = NULL;
    BITMAP * wiadomosc = NULL;
    BITMAP * wilk = NULL;
    BITMAP * wiadomosc1 = NULL;
    BITMAP * druzka = NULL;
    BITMAP * brama = NULL;
    BITMAP * linia = NULL;
    SAMPLE * muzyka = NULL; ///**********************************************************************
    SAMPLE * natura = NULL;
    SAMPLE * wilkm = NULL;
    SAMPLE * dzwiek_wiadomosci_ = NULL;
    bufor = create_bitmap( 1000, 600 );
    tlo = load_bitmap( "Grafika/tlo.bmp", default_palette );
    ludek = load_bitmap( "Grafika/bohater.bmp", default_palette );
    ludek_lewo = load_bitmap( "Grafika/bohater_lewo.bmp", default_palette );
    ludek_tyl = load_bitmap( "Grafika/bohater_tyl.bmp", default_palette );
    ludek_prawo = load_bitmap( "Grafika/bohater_prawo.bmp", default_palette );
    las = load_bitmap( "Grafika/las.bmp", default_palette );
    dom = load_bitmap( "Grafika/dom.bmp", default_palette );
    plecak = load_bitmap( "Grafika/plecak.bmp", default_palette );
    tom = load_bitmap( "Grafika/tom.bmp", default_palette );
    wiadomosc = load_bitmap( "Grafika/wiadomosc.bmp", default_palette );
    wilk = load_bitmap( "Grafika/wilk.bmp", default_palette );
    wiadomosc1 = load_bitmap( "Grafika/wiadomosc1.bmp", default_palette );
    brama = load_bitmap( "Grafika/brama.bmp", default_palette );
    linia = load_bitmap( "Grafika/linia.bmp", default_palette );
    muzyka = load_sample( "Muzyka/muzyka.wav" ); ///*****************************************************
    natura = load_sample( "Muzyka/natura.wav" );
    wilkm = load_sample( "Muzyka/wilk.wav" );
    dzwiek_wiadomosci_ = load_sample( "Muzyka/dzwiek_wiadomosci_.wav" );
    int tlo_x = 0;
    int tlo_y = 0;
    ludeka.x = 100; ludeka.y = 370; ludeka.s = 40; ludeka.w = 39;
    lasa.x = 100; lasa.y = 30; lasa.s = 330; lasa.w = 290;
    doma.x = 900; doma.y = 500; doma.s = 120; doma.w = 140;
    plecaka.x = 0; plecaka.y = 470; plecaka.s = 500; plecaka.w = 170;
    toma.x = 900; toma.y = 450; toma.s = 20; toma.w = 40;
    wiadomosca.x = 250; wiadomosca.y = 250; wiadomosca.s = 500; wiadomosca.w = 170;
    wilka.x = 230; wilka.y = 290; wilka.s = 40; wilka.w = 40;
    wiadomosc1a.x = 250; wiadomosc1a.y = 250; wiadomosc1a.s = 500; wiadomosc1a.w = 170;
    wiadomosc1a.x = 250; wiadomosc1a.y = 250; wiadomosc1a.s = 500; wiadomosc1a.w = 170;
    bramaa.x = 0; bramaa.y = 0; bramaa.s = 960; bramaa.w = 140;
    liniaa.x = 0; liniaa.y = 0; liniaa.s = 960; liniaa.w = 20;
    wilka.zycie = 770;
    double poz_x_zycie = 230;
    double poz_y_zycie = 300;
    bool czy_przea_lewo = true;
    bool czy_przea_prawo = false;
    bool czy_bohater_przod = true;
    bool czy_bohater_lewo = false;
    bool czy_bohater_prawo = false;
    bool czy_bohater_tyl = false;
    bool czy_jest_zadanie = false;
    bool czy_wilk_atakowac = false;
    bool czy_wyswietlac_wilka = true;
    bool czy_zadanie_wykonane = false;
    bool czy_moze_dostac = true;
    bool czy_dzwiek_wilk = true;
    bool czy_plansza_ = true;
    bool czy_dzwiek_wiadomosci = false;
    bool czy_plansza_1 = false;
    bool czy_wilk_zyje = true;
    set_volume( 255, 255 );
   
   
    play_sample( muzyka, 255, 127, 1000, 1 ); ///***************************************************
    play_sample( natura, 255, 127, 1000, 1 );
    while( !key[ KEY_ESC ] )
    {
       
        if( kolizja( liniaa.x, liniaa.y, liniaa.s, liniaa.w, ludeka.x, ludeka.y, ludeka.s, ludeka.w ) )
        {
            czy_plansza_1 = true;
            czy_plansza_ = false;
            ludeka.y = 400;
            ludeka.x = 300;
        }
       
       
        ///********************KOLIZJA LUDEK DOMEK***************************
        if(( kolizja( doma.x, doma.y, doma.s, doma.w, ludeka.x, ludeka.y, ludeka.s, ludeka.w ) &&( key[ KEY_RIGHT ] ) ) )
        {
            ludeka.x = ludeka.x - 2;
        }
        if(( kolizja( doma.x, doma.y, doma.s, doma.w, ludeka.x, ludeka.y, ludeka.s, ludeka.w ) &&( key[ KEY_DOWN ] ) ) )
        {
            ludeka.y = ludeka.y - 2;
        }
        ///////////////WIADOMOSC DO ZADANIA********************
       
        if( kolizja( toma.x, toma.y, toma.s, toma.w, ludeka.x, ludeka.y, ludeka.s, ludeka.w ) )
        {
           
           
           
            masked_blit( wiadomosc, bufor, 0, 0, wiadomosca.x, wiadomosca.y, wiadomosca.s, wiadomosca.w );
           
            if( czy_zadanie_wykonane == true )
            {
                if( czy_moze_dostac == true )
                {
                   
                    if( czy_jest_zadanie == true )
                    {
                        bohater.zloto = bohater.zloto + 70;
                        bohater.doswiadczenie = bohater.doswiadczenie + 70;
                    }
                }
                czy_moze_dostac = false;
                ///****************************ZADANIE WYKONANE      WYSWIETLANIE*************
                if( czy_jest_zadanie == true )
                {
                    czy_dzwiek_wiadomosci = true;
                    masked_blit( wiadomosc1, bufor, 0, 0, wiadomosc1a.x, wiadomosc1a.y, wiadomosc1a.s, wiadomosc1a.w );
                   
                }
            }
           
            if( key[ KEY_T ] )
            {
                czy_jest_zadanie = true;
                ludeka.x = ludeka.x - 7;
               
            }
            if( key[ KEY_N ] )
            {
                czy_jest_zadanie = false;
                ludeka.x = ludeka.x - 7;
            }
        }
        ///**************Kolizja ludek wilk*****************************
        if( kolizja( wilka.x, wilka.y, wilka.s, wilka.w, ludeka.x, ludeka.y, ludeka.s, ludeka.w ) )
        {
            czy_wilk_atakowac = true;
        }
        while( speed > 0 )
        {
            if( czy_wilk_atakowac == true )
            {
                if( ludeka.x - 0 > wilka.x )
                {
                    wilka.x = wilka.x + 0.5;
                    poz_x_zycie = poz_x_zycie + 0.5;
                }
                if( ludeka.x + 0 < wilka.x )
                {
                    wilka.x = wilka.x - 0.5;
                    poz_x_zycie = poz_x_zycie - 0.5;
                }
                if( ludeka.y - 0 > wilka.y )
                {
                    wilka.y = wilka.y + 0.5;
                    poz_y_zycie = poz_y_zycie + 0.5;
                }
                if( ludeka.y + 0 < wilka.y )
                {
                    wilka.y = wilka.y - 0.5;
                    poz_y_zycie = poz_y_zycie - 0.5;
                }
            }
           
            if( key[ KEY_DOWN ] )
            {
                ludeka.y = ludeka.y + 1;
                czy_bohater_lewo = false;
                czy_bohater_przod = false;
                czy_bohater_prawo = false;
                czy_bohater_tyl = true;
            }
            if( key[ KEY_UP ] )
            {
                ludeka.y = ludeka.y - 1;
                czy_bohater_lewo = false;
                czy_bohater_przod = true;
                czy_bohater_prawo = false;
                czy_bohater_tyl = false;
            }
            if( key[ KEY_LEFT ] )
            {
                ludeka.x = ludeka.x - 1;
                czy_bohater_lewo = true;
                czy_bohater_przod = false;
                czy_bohater_prawo = false;
                czy_bohater_tyl = false;
            }
            if( key[ KEY_RIGHT ] )
            {
                ludeka.x = ludeka.x + 1;
                czy_bohater_lewo = false;
                czy_bohater_przod = false;
                czy_bohater_prawo = true;
                czy_bohater_tyl = false;
            }
            speed--;
           
           
            if( kolizja( wilka.x, wilka.y, wilka.s, wilka.w, ludeka.x, ludeka.y, ludeka.s, ludeka.w ) )
            {
                if( czy_wilk_zyje == true )
                {
                    bohater.zycie = bohater.zycie - 1;
                }
                if( key[ KEY_E ] )
               
                {
                   
                    if( czy_dzwiek_wilk == true )
                    {
                        play_sample( wilkm, 255, 127, 1000, 1 );
                       
                    }
                    czy_dzwiek_wilk = false;
                   
                   
                    wilka.zycie = wilka.zycie - bohater.sila;
                   
                    if( wilka.zycie < 0 )
                    {
                        stop_sample( wilkm );
                        czy_wyswietlac_wilka = false;
                        czy_zadanie_wykonane = true;
                        czy_wilk_zyje = false;
                    }
                }
            }
        }
        blit( bufor, screen, 0, 0, 0, 0, 1000, 600 );
        masked_blit( tlo, bufor, 0, 0, tlo_x, tlo_y, tlo->w, tlo->h );
        if( czy_bohater_przod == true )
        {
            masked_blit( ludek, bufor, 0, 0, ludeka.x, ludeka.y, ludeka.s, ludeka.w );
        }
        if( czy_bohater_lewo == true )
        {
            masked_blit( ludek_lewo, bufor, 0, 0, ludeka.x, ludeka.y, ludeka.s, ludeka.w );
        }
        if( czy_bohater_prawo == true )
        {
            masked_blit( ludek_prawo, bufor, 0, 0, ludeka.x, ludeka.y, ludeka.s, ludeka.w );
        }
        if( czy_bohater_tyl == true )
        {
            masked_blit( ludek_tyl, bufor, 0, 0, ludeka.x, ludeka.y, ludeka.s, ludeka.w );
        }
        masked_blit( plecak, bufor, 0, 0, plecaka.x, plecaka.y, plecaka.s, plecaka.w );
        if( czy_plansza_ == true )
        {
            masked_blit( las, bufor, 0, 0, lasa.x, lasa.y, lasa.s, lasa.w );
            masked_blit( dom, bufor, 0, 0, doma.x, doma.y, doma.s, doma.w );
            masked_blit( tom, bufor, 0, 0, toma.x, toma.y, toma.s, toma.w );
            masked_blit( linia, bufor, 0, 0, liniaa.x, liniaa.y, liniaa.s, liniaa.w );
            if( czy_wyswietlac_wilka == true )
            {
                textprintf_ex( bufor, font, poz_x_zycie, poz_y_zycie, makecol( 0, 200, 0 ), - 1, "%d", wilka.zycie );
            }
           
            if( czy_wyswietlac_wilka == true )
            {
                masked_blit( wilk, bufor, 0, 0, wilka.x, wilka.y, wilka.s, wilka.w );
            }
        }
        if( czy_plansza_1 == true )
        {
            masked_blit( brama, bufor, 0, 0, bramaa.x, bramaa.y, bramaa.s, bramaa.w );
            if( czy_wyswietlac_wilka == true )
            {
                masked_blit( wilk, bufor, 0, 0, wilka.x, wilka.y, wilka.s, wilka.w );
                textprintf_ex( bufor, font, poz_x_zycie, poz_y_zycie, makecol( 0, 200, 0 ), - 1, "%d", wilka.zycie );
            }
        }
        ////////////////////////PLECAK********************
       
       
        textprintf_ex( bufor, font, 90, 90, makecol( 200, 200, 200 ), - 1, "%d", ludeka.x );
        textprintf_ex( bufor, font, 30, 500, makecol( 0, 200, 0 ), - 1, "%Zycie   Magia    Zloto  Level  Doswiadczenie" );
        textprintf_ex( bufor, font, 30, 510, makecol( 0, 200, 0 ), - 1, "%d", bohater.zycie );
        textprintf_ex( bufor, font, 110, 510, makecol( 0, 200, 0 ), - 1, "%d", bohater.magia );
        textprintf_ex( bufor, font, 30, 530, makecol( 0, 200, 0 ), - 1, "%Ochrona Sila" );
        textprintf_ex( bufor, font, 30, 540, makecol( 0, 200, 0 ), - 1, "%d", bohater.ochrona );
        textprintf_ex( bufor, font, 110, 540, makecol( 0, 200, 0 ), - 1, "%d", bohater.sila );
        textprintf_ex( bufor, font, 170, 510, makecol( 0, 200, 0 ), - 1, "%d", bohater.zloto );
        textprintf_ex( bufor, font, 230, 510, makecol( 0, 200, 0 ), - 1, "%d", bohater.level );
        textprintf_ex( bufor, font, 290, 510, makecol( 0, 200, 0 ), - 1, "%d", bohater.doswiadczenie );
    }
    allegro_exit();
    return( 0 );
}
END_OF_MAIN();
P-14709
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-03-07 19:42:16
Pomoże ktos ?
P-14726
malan
» 2010-03-07 19:53:51
Na pierwszy rzut oka to tu nic nie widać ;p. Określ dokładnie w jakiej sytuacji wyskakuje błąd, czy występuje w tym samym miejscu itp. :)
P-14728
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-03-07 19:56:13
Błąd wyskakuje jak sie skonczy piosenka (w kodze ma nazwe muzyka) xD
P-14729
malan
» 2010-03-07 20:06:40
Dobra, najpierw zamień:
play_sample( muzyka, 255, 127, 1000, 1 );
na
play_sample( muzyka, 255, 127, 1000, 0 );
... i napisz, czy błąd występuje nadal.
P-14733
« 1 » 2 3
  Strona 1 z 3 Następna strona