2012-03-06 4 views
0

Код ниже не работает; он создает пустой экран. Но если я изменил заполненную прямоугольную линию в нижней строке на:Allegro 5 problems

al_draw_filled_rectangle(100, 100, 100+15, 100+15, al_map_rgb(155, 255, 155)); 

Он производит квадрат в правильных координатах. Что происходит?

#define ALLEGRO_STATICLINK 



    #include <allegro5/allegro.h> 
    #include <allegro5/allegro_primitives.h> 



    int main(int argc, char **argv) 

{ 
    ALLEGRO_DISPLAY *display; 


    if(!al_init()) 
    { 
     return -1; 
    } 

    display = al_create_display(640, 480); 
    if(!display) 
    { 
     return -1; 
    } 

    if(!al_init_primitives_addon()) 
    { 
     return -1; 
    } 


    al_draw_filled_rectangle(73, 493, 73+15, 493+15, al_map_rgb(155, 255, 155)); 

    al_flip_display(); 

    al_rest(10); 

    return 0; 
} 

ответ

4

Вы пытаетесь сделать на Y координат больше высоты экрана ...

al_draw_filled_rectangle(73, 493, 73+15, 493+15, al_map_rgb(155, 255, 155)); 

Рисует на 493 до 493 + 15

493> 480 и 493 + 15> 480

display = al_create_display(640, 480); 

Этот набор 480, как ваша высота экрана так рисунок выше, что число приведет ни показано на рисунке.

При использовании

al_draw_filled_rectangle(100, 100, 100+15, 100+15, al_map_rgb(155, 255, 155)); 

Теперь вы на самом деле на экране так это работает.

+0

Не могу поверить, что я сделал это. благодаря – user701329

Смежные вопросы