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

Allegro 4, menu.

Ostatnio zmodyfikowano 2012-09-07 21:10
Autor Wiadomość
SeaMonster131
» 2012-09-07 19:41:53
Jeżeli chodzi o Debugger, to mam raczej wszystko dobrze.
Debugger pokaże Ci w której linijce aplikacja się wywala..
P-64527
bingo009
» 2012-09-07 21:01:53
Ładujesz zasoby, nawet nie sprawdzając, czy istnieją? Ja miałem tak samo, główkowałem, czemu wywala mi funkcja, a tu się okazało, że zapommniałem nadać właściwej nazwy bitmapie.
P-64535
Gabes
» 2012-09-07 21:10:21
Trochę poprawek i działa. Kod działał poprawnie, na pewno podałeś złą nazwę bitmapy.
|| na &&
clear_to_color( bufor, makecol( 150, 150, 150 ) ); na początek programu bo czyściłeś bufor i wyświetlałeś na ekran.
textprintf... na meni.
dodałem textprintf_ex( bufor, font, 0, 0,makecol(0,0,0),-1,"menu= %d klik= %d mx= %d my=%d",menu,mb,mx,my); abyś mógł odczytywać zmienne, trzeba poprzestawiać zasięg każdego przycisku.
dodane   while( !menu == 0 && !key[ KEY_ESC ]) aby wyjść z programu po wybraniu menu.
a i jeszcze  menu równa się zero (menu = 0) a nie czy menu jest równe zero (menu==0)
w   if( mb & 1 )
                {
                    menu = 0;
                } // i tak dalej

C/C++
#include <allegro.h>

int mx = 0, my = 0, mb = 0;
void myszka()
{
    if( mx != mouse_x || my != mouse_y || mb != mouse_b )
    {
        mx = mouse_x;
        my = mouse_y;
        mb = mouse_b;
    }
};

int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 1000, 800, 0, 0 );
    clear_to_color( screen, makecol( 128, 128, 128 ) );
    BITMAP * kursor = NULL;
    kursor = load_bmp( "kursor.bmp", default_palette );
    install_mouse();
    show_mouse( screen );
    set_mouse_sprite( kursor );
    //unscare_mouse();
   
    BITMAP * bufor = NULL;
    BITMAP * meni = NULL;
    BITMAP * przycisk11 = NULL;
    BITMAP * przycisk12 = NULL;
    BITMAP * przycisk13 = NULL;
    BITMAP * przycisk14 = NULL;
    BITMAP * przycisk15 = NULL;
    BITMAP * przycisk2 = NULL;
   
    bufor = create_bitmap( 1000, 800 );
    meni = load_bmp( "menub.bmp", default_palette );
    przycisk11 = load_bmp( "przycisk1.bmp", default_palette );
    przycisk12 = load_bmp( "przycisk1.bmp", default_palette );
    przycisk13 = load_bmp( "przycisk1.bmp", default_palette );
    przycisk14 = load_bmp( "przycisk1.bmp", default_palette );
    przycisk15 = load_bmp( "przycisk1.bmp", default_palette );
    przycisk2 = load_bmp( "przycisk2.bmp", default_palette );
   
    int menu = 1;
   
    while( !menu == 0 && !key[ KEY_ESC ] )
    {
        clear_to_color( bufor, makecol( 150, 150, 150 ) );
       
        myszka();
       
        if( menu == 1 )
        {
            if( mx > 425 && mx < 575 && my < 575 && my > 525 )
            {
                masked_blit( przycisk2, meni, 0, 0, 500, 550, przycisk2->w, przycisk2->h );
                textprintf_ex( meni, font, 500, 550, makecol( 0, 0, 0 ), - 1, "Start" );
                if( mb & 1 )
                {
                    menu = 2;
                }
            }
            else
            {
                masked_blit( przycisk11, meni, 0, 0, 500, 550, przycisk11->w, przycisk11->h );
                textprintf_ex( meni, font, 500, 550, makecol( 200, 200, 200 ), - 1, "Start" );
            }
            if( mx > 425 && mx < 575 && my < 500 && my > 450 )
            {
                masked_blit( przycisk2, meni, 0, 0, 500, 475, przycisk2->w, przycisk2->h );
                textprintf_ex( meni, font, 500, 475, makecol( 0, 0, 0 ), - 1, "Kontynuj" );
                if( mb & 1 )
                {
                    menu = 3;
                }
            }
            else
            {
                masked_blit( przycisk12, meni, 0, 0, 500, 475, przycisk12->w, przycisk12->h );
                textprintf_ex( meni, font, 500, 475, makecol( 200, 200, 200 ), - 1, "Kontynuj" );
            }
            if( mx > 425 && mx < 575 && my < 425 && my > 375 )
            {
                masked_blit( przycisk2, meni, 0, 0, 500, 400, przycisk2->w, przycisk2->h );
                textprintf_ex( meni, font, 500, 400, makecol( 0, 0, 0 ), - 1, "Autorzy" );
                if( mb & 1 )
                {
                    menu = 4;
                }
            }
            else
            {
                masked_blit( przycisk13, meni, 0, 0, 500, 400, przycisk13->w, przycisk13->h );
                textprintf_ex( meni, font, 500, 400, makecol( 200, 200, 200 ), - 1, "Autorzy" );
            }
            if( mx > 425 && mx < 575 && my < 350 && my > 300 )
            {
                masked_blit( przycisk2, meni, 0, 0, 500, 325, przycisk2->w, przycisk2->h );
                textprintf_ex( meni, font, 500, 330, makecol( 0, 0, 0 ), - 1, "Pomoc" );
                if( mb & 1 )
                {
                    menu = 5;
                }
            }
            else
            {
                masked_blit( przycisk14, meni, 0, 0, 500, 325, przycisk14->w, przycisk14->h );
                textprintf_ex( meni, font, 500, 330, makecol( 200, 200, 200 ), - 1, "Pomoc" );
            }
            if( mx > 425 && mx < 575 && my < 275 && my > 225 )
            {
                masked_blit( przycisk2, meni, 0, 0, 500, 250, przycisk2->w, przycisk2->h );
                textprintf_ex( meni, font, 500, 250, makecol( 0, 0, 0 ), - 1, "Wyjscie" );
                if( mb & 1 )
                {
                    menu = 0;
                }
            }
            else
            {
                masked_blit( przycisk15, meni, 0, 0, 500, 250, przycisk15->w, przycisk15->h );
                textprintf_ex( meni, font, 500, 250, makecol( 200, 200, 200 ), - 1, "Wyjscie" );
            }
            if( key[ KEY_ESC ] )
            {
                menu = 0;
            }
            blit( meni, bufor, 0, 0, 0, 0, 1000, 800 );
        }
        if( key[ KEY_ENTER ] )
        {
            menu = 1;
        }
        textprintf_ex( bufor, font, 0, 0, makecol( 0, 0, 0 ), - 1, "menu= %d klik= %d mx= %d my=%d", menu, mb, mx, my );
        //clear_to_color( bufor, makecol( 150, 150, 150 ) );
        blit( bufor, screen, 0, 0, 0, 0, 1000, 800 );
    }
    destroy_bitmap( bufor );
    destroy_bitmap( meni );
    destroy_bitmap( przycisk11 );
    destroy_bitmap( przycisk12 );
    destroy_bitmap( przycisk13 );
    destroy_bitmap( przycisk14 );
    destroy_bitmap( przycisk15 );
    destroy_bitmap( przycisk2 );
    return 0;
}
END_OF_MAIN();
edycja danie powrotu do menu klawisz enter
        if( key[ KEY_ENTER] )
            {
                menu = 1;
            }
P-64536
1 « 2 »
Poprzednia strona Strona 2 z 2