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

[Allegro] Zmiana wartości po naciśnięciu klawisza

Ostatnio zmodyfikowano 2011-10-23 21:10
Autor Wiadomość
Kamil9132
Temat założony przez niniejszego użytkownika
» 2011-10-23 13:35:11
Chyba wiem co jest nie tak w tym kodzie.
Gdy naciskam enter to wartość menug zmienia się na 2, ale dalej w kodzie jest że po naciśnięciu enter wartość zmienia się na 0.
Jaką funkcją wyczyścić bufor klawisza?
Próbowałem użyć clear_keybuf, ale nie działa.
P-42554
Gabes
» 2011-10-23 13:45:56
Zrobiłem część ale całkiem inaczej:
C/C++
#include <allegro.h>

int main()
{
    allegro_init(); install_keyboard(); set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0 );
    BITMAP * bufor = create_bitmap( 640, 480 );
    bool wyjdz = false, menu = true, start = false, tak = true, nie = true;
    int kol_st = 255, kol_wyj = - 1; //kolory do menu
   
    while( !( key[ KEY_ENTER ] && wyjdz == true ) )
    {
        clear_to_color( bufor, makecol( 10, 10, 10 ) );
       
        if( menu == true and start == false )
        {
            textprintf_ex( bufor, font, 200, 100, makecol( 255, 255, 255 ), kol_st, "Start" ),
            textprintf_ex( bufor, font, 200, 120, makecol( 255, 255, 255 ), kol_wyj, "Wyjdz z gry" );
           
            if( key[ KEY_UP ] )
            {
                wyjdz = false, kol_st = 255, kol_wyj = - 1;
            }
           
            if( key[ KEY_DOWN ] )
            {
                wyjdz = true; kol_wyj = 255, kol_st = - 1;
            }
           
        }
       
        if( menu == false )
        {
            //tu gdy start
        }
       
        blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
    }
    allegro_exit();
    return 0;
}
END_OF_MAIN();
Dodawaj bufor.
P-42557
Kamil9132
Temat założony przez niniejszego użytkownika
» 2011-10-23 14:39:29
Tylko w tym kodzie który podałeś po naciśnięciu strzałki w dół i entera program wychodzi, a mi chodzi żeby się jeszcze pytał np."Czy na pewno chcesz wyjść?". Tym kodem który podałeś rozwiązałeś mój drugi problem o którym nie napisałem - miganiu bufora(nie doczytałem że można też tekst tak wyświetlać). W tym moim kodzie po naciśnięciu entera wartość zmieniała się dwóch zmiennych, a powinna jednej. Mógłbyś mi jeszcze podać funkcję która czyści bufor klawisza?
P-42566
Kamil9132
Temat założony przez niniejszego użytkownika
» 2011-10-23 21:10:42
Poradziłem sobie już z tym :)
Wystarczyło użyć "key[KEY_ENTER]=false;".
Temat do zamknięcia.
P-42610
1 « 2 »
Poprzednia strona Strona 2 z 2