Tam gdzie jest funkcja zmienna itp do dzwieku zaznaczylem dlugimi komentarzami z gwiazdek
#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;
}
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;
}
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;
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;
}
}
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 );
}
}
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();