C++ 在Allegro中如何在屏幕上显示子位图的绘制?

C++ 在Allegro中如何在屏幕上显示子位图的绘制?,c++,allegro,allegro5,C++,Allegro,Allegro5,我使用两个位图,图像(子位图)和网格(主位图) 在这里之前,一切都很顺利,但如果我直接绘制到图像(subbitmapt),那么我找不到如何将更改发送到显示 al_set_target_bitmap(image); //rows and cols are the height and width of subbitmap for (int y = 0; y < rows; ++y) { for (int x = 0; x < columns; ++x) { i

我使用两个位图,图像(子位图)和网格(主位图)

在这里之前,一切都很顺利,但如果我直接绘制到图像(subbitmapt),那么我找不到如何将更改发送到显示

al_set_target_bitmap(image);

//rows and cols are the height and width of subbitmap
for (int y = 0; y < rows; ++y) {
    for (int x = 0; x < columns; ++x) {
        if(x == y || x-1 == y || x+1  == y || x == y-1 || x == y+1){
            //I test the condition and the program is entering to the if
            al_draw_pixel(x, y, al_map_rgb(255, 255, 255));
        }
    }
}

al_set_target_bitmap(grid);

al_flip_display();
al_set_target_位图(图像);
//行和列是子位图的高度和宽度
对于(int y=0;y

编辑子位图后,知道如何更新主位图吗?

来自Allegro文档:

子位图是与预先存在的(父)位图共享图形内存的位图,但可能具有不同的大小和剪裁设置

al_create_sub_bitmap
返回指向需要分配给要使用的变量的
ALLEGRO_bitmap
的指针

要创建和分配子位图,可以使用:

ALLEGRO_BITMAP* subbitmap = al_create_sub_bitmap(grid, 0, 0, columns, rows);
al_set_target_bitmap(subbitmap);

来自Allegro文档:

子位图是与预先存在的(父)位图共享图形内存的位图,但可能具有不同的大小和剪裁设置

al_create_sub_bitmap
返回指向需要分配给要使用的变量的
ALLEGRO_bitmap
的指针

要创建和分配子位图,可以使用:

ALLEGRO_BITMAP* subbitmap = al_create_sub_bitmap(grid, 0, 0, columns, rows);
al_set_target_bitmap(subbitmap);

您必须在显示器上绘制“网格”位图,然后将其翻转

al_set_target_backbuffer(display);
al_draw_bitmap(grid , 0 , 0 , 0);
al_flip_display();

您必须在显示器上绘制“网格”位图,然后将其翻转

al_set_target_backbuffer(display);
al_draw_bitmap(grid , 0 , 0 , 0);
al_flip_display();