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

allegro bufor tekstu?

Ostatnio zmodyfikowano 2009-03-31 18:40
Autor Wiadomość
elradziu
Temat założony przez niniejszego użytkownika
allegro bufor tekstu?
» 2009-03-29 14:19:13
Witam mam takie cos:
C/C++
int menu( int i, int j )
{
    while( !key[ KEY_ESC ] )
    {
        clear_to_color( screen, makecol( 0, 255, 0 ) );
        textout_ex( screen, font, "1- GRAJ",( i / 2 ),( j / 2 ), makecol( 0, 0, 0 ), - 1 );
        textout_ex( screen, font, "ESC- WYJSCIE",( i / 2 ),( i / 2 ) + 1, makecol( 0, 0, 0 ), - 1 );
        rest( 10 );
        if( key[ KEY_1 ] ) graj();
       
    }
}
i mi to niestety migota.
Czy można to jakoś zbuforwoać?
Lub inne rozwiazanie bo w funkcji graj(); mam coś takieg ( to tylko wycinek):
C/C++
while( !key[ KEY_M ] )
{
    //kod
}
Wykorzystałem klawisz M gdyż gdy był ustawiony ESC to wyłączał się program.
Da się jakoś zamienić M na ESC i żeby nie wyłączało całego programu? i czy da się jakoś zbuforować ten tekst?
P-5103
pixelmaster
» 2009-03-29 14:22:23
Spróbuj wyświetlić tekst na buforze a nie na ekranie.
P-5104
DeBugger
» 2009-03-29 16:16:15
C/C++
BITMAP * buffer;
buffer = create_bitmap( x, y );
//...
while( !key[ KEY_ESC ] )
{
    clear_to_color( buffer, makecol( 0, 255, 0 ) );
    textout_ex( buffer, font, "1- GRAJ",( i / 2 ),( j / 2 ), makecol( 0, 0, 0 ), - 1 );
    textout_ex( buffer, font, "ESC- WYJSCIE",( i / 2 ),( i / 2 ) + 1, makecol( 0, 0, 0 ), - 1 );
    rest( 10 );
    if( key[ KEY_1 ] ) graj();
   
    blit( buffer, screen, 0, 0, 0, 0, buffer->w, buffer->h );
}
Bodajże coś takiego(dawno nie pisałem w allegro).
P-5110
elradziu
Temat założony przez niniejszego użytkownika
» 2009-03-29 17:00:13
Działa. Jesteście wielcy ta strona jest wielka. Gratulacje za pomysł, realizacje, oraz podziękowania dla założyciela.

A da się jakoś załatwić problem z klawiszem ESC ?
P-5115
Skala
» 2009-03-29 17:10:00
zmieniasz
while( !key[ KEY_ESC ] )
na
while( !key[ KEY_M ] )
P-5116
DejaVu
» 2009-03-29 17:18:59
Musisz dodać nową zmienną, np.
C/C++
int wcisnietoESC = 0; //inicjacja na samym początku programu

while( wcisnietoESC == 1 ) //tak każda pętla powinna wyglądać
{
    //(...) tutaj Twój kod
   
    if( key[ ESC ] ) wcisnietoESC = 1; //w każdej pętli
   
    if( !key[ ESC ] ) wcisnietoESC = 0; //w każdej pętli
   
} //while

wcisnietoESC = 2; //to po każdym wyjściu z pętli
P-5117
elradziu
Temat założony przez niniejszego użytkownika
» 2009-03-31 18:29:27
Tu jest zastosowan bufor podwójny rozumiem ze wchodzą do niego dawa obiekty np tekst i bitmapa. Jezeli sa inne ograniczenia to prosze o poprawke a jak zróbić bufor o wiekszej pojemności ?
P-5195
DeBugger
» 2009-03-31 18:40:28
Nie rozumiem twojego pytania. Na podwójne buforowanie możesz blitować n-wiele bitmap.
P-5196
« 1 »
  Strona 1 z 1