2012-03-06 164 views
0

下面的代码将不起作用;它会产生一个空白屏幕。但是,如果我将填充的矩形线朝底线更改为:Allegro 5问题

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

您试图在Ÿ绘制坐标大于屏幕高度越大......

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 2012-03-06 00:57:22