以下代码不起作用;它会产生一个空白屏幕。但是,如果我将填充的矩形线更改为底线:
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;
}
答案 0 :(得分:4)
您正在尝试以大于屏幕高度的Y坐标绘制...
al_draw_filled_rectangle(73, 493, 73+15, 493+15, al_map_rgb(155, 255, 155));
抽奖于493至493 + 15
493&gt; 480和493 + 15&gt; 480
display = al_create_display(640, 480);
这将480设置为您的屏幕高度,因此超过该数字将导致无法显示任何内容。
使用时
al_draw_filled_rectangle(100, 100, 100+15, 100+15, al_map_rgb(155, 255, 155));
你现在实际上在屏幕上,所以它可以工作。