Allegro frage!



  • Kann man das Allegro Programm von der Schnelligkeit her optimieren,ohne es gleich im Fullscreenmodus laufen lassen zu müssen?...

    #include <allegro.h>
    
    int set_graphic_mode() {
    
        set_color_depth(16);
        if (set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0) >= 0) {
            return 1;
        }
        return 0;
    }
    
    int main(int argc, char **argv) {
        allegro_init();
        install_keyboard();
    
        if (!set_graphic_mode()) {
            allegro_message("Unable to set graphic mode!");
            exit(0);
        }
    
        BITMAP *doublebuffer = create_bitmap(SCREEN_W, SCREEN_H);
        BITMAP *logo = load_bitmap("allegro.tga", NULL);
    
        int x = 0;
        int y = 0;
        int dx = 1;
        int dy = 1;
        while (!keypressed()) {
    
            // Linker und rechter Rand
            if (x + dx < 0) {
                dx *= -1;
            } else if (x + logo->w >= SCREEN_W) {
                dx *= -1;
            }
            // Oberer und unterer Rand
            if (y + dy < 0) {
                dy *= -1;
            } else if (y + logo->h >= SCREEN_H) {
                dy *= -1;
            }
            x+= dx;
            y+= dy;
    
            acquire_bitmap(doublebuffer);
            clear(doublebuffer);
            blit( logo, doublebuffer, 0, 0, x, y, logo->w, logo->h);
            release_bitmap(doublebuffer);
    
            blit(doublebuffer, screen, 0, 0, 0, 0, doublebuffer->w, doublebuffer->h);
        }
    
    } END_OF_MAIN();
    

Anmelden zum Antworten