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

Prawo odbicia ALLEGRO

Ostatnio zmodyfikowano 2014-01-05 21:53
Autor Wiadomość
matiko101
Temat założony przez niniejszego użytkownika
Prawo odbicia ALLEGRO
» 2014-01-05 21:53:27
Witam,
W jaki sposób udoskonalić moją grę (niedokończona), aby zachowane było prawo odbicia ?
Jak wyglądał by taki wzór dostosowany do mojego kodu ?
Już próbuję to zrobić od 3 dni ... 
C/C++
#include <allegro.h>
#include<cmath>
int main()
{
    int kierunek = 1;
    int uderzenie;
    int kat;
    allegro_init();
    install_keyboard();
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT, 1440, 900, 0, 0 );
    clear_to_color( screen, makecol( 128, 128, 128 ) );
   
    BITMAP * bufor = NULL;
    BITMAP * scianka1 = NULL;
    BITMAP * scianka2 = NULL;
    BITMAP * pilka = NULL;
   
    bufor = create_bitmap( 1440, 900 );
    install_mouse();
    scianka1 = load_bmp( "ludek.bmp", default_palette );
    scianka2 = load_bmp( "ludek.bmp", default_palette );
    pilka = load_bmp( "pilka.bmp", default_palette );
   
    int scianka1_x = 0, scianka1_y = 450;
    int scianka2_x = 1390, scianka2_y = 450;
    double pilka_x = 0, pilka_y = 450;
    while( !key[ KEY_ESC ] )
    {
        rest( 0.6 );
        if( key[ KEY_UP ] && scianka1_y != 0 ) scianka1_y--;
       
        if( key[ KEY_DOWN ] && scianka1_y != 670 ) scianka1_y++;
       
        if( key[ KEY_W ] && scianka2_y != 0 ) scianka2_y--;
       
        if( key[ KEY_S ] && scianka2_y != 670 ) scianka2_y++;
       
        if(( kierunek == 1 && scianka2_x + pilka_x != 2780 ) ||( scianka1_x + pilka_x == 35 ) &&( pilka_y != 0 ) &&( pilka_y != 899 ) )
        {
            pilka_x++;
            kat = pilka_y;
            kierunek = 1;
        }
        if(( kierunek == 2 && scianka1_x + pilka_x != 0 ) ||( scianka2_x + pilka_x == 2700 ) &&( pilka_y != 0 ) &&( pilka_y != 899 ) )
        {
            kierunek = 2;
            pilka_x--;
            kat = pilka_y;
        }
       
       
       
       
        textprintf( screen, font, 20, 20, makecol( 255, 255, 128 ), "Kat to : %d", kat );
        clear_to_color( bufor, makecol( 60, 10, 10 ) );
        masked_blit( pilka, bufor, 0, 0, pilka_x, pilka_y, pilka->w, pilka->h );
        masked_blit( scianka1, bufor, 0, 0, scianka1_x, scianka1_y, scianka1->w, scianka1->h );
        masked_blit( scianka2, bufor, 0, 0, scianka2_x, scianka2_y, scianka2->w, scianka2->h );
        blit( bufor, screen, 0, 0, 0, 0, 1440, 900 );
    }
    destroy_bitmap( scianka1 );
    destroy_bitmap( scianka2 );
    destroy_bitmap( pilka );
    destroy_bitmap( bufor );
    allegro_exit();
    return 0;
}
END_OF_MAIN();
P-101306
« 1 »
  Strona 1 z 1