我的 allegro 5 游戏需要绘制 tilesheet 的区域,然后我使用了 al_draw_bitmap_region
,但现在我添加了更改屏幕分辨率的功能,所以现在我还需要缩放该位图,但 allegro 5 没有类似 al_draw_scaled_bitmap_region 的东西,它有 al_draw_bitmap_region 和
al_draw_scaled_bitmap` 但不是两者都有。
有人可以帮助我如何使用两者吗?
最佳答案
没有al_draw_scaled_bitmap_region
,但是有
al_draw_tinted_scaled_rotated_bitmap_region
。你可以只传递“默认”
不需要的参数的值。
al_draw_tinted_scaled_rotated_bitmap_region(
bitmap,
sx, sy, sw, sh, // source bitmap region
al_map_rgb(1, 1, 1), // color, just use white if you don't want a tint
cx, cy, // center of rotation/scaling
float dx, float dy, // destination
xscale, yscale, // scale
0, 0)); // angle and flags
您还可以使用变换来缩放位图:
ALLEGRO_TRANSFORM trans, prevTrans;
// back up the current transform
al_copy_transform(&prevTrans, al_get_current_transform());
// scale using the new transform
al_identity_transform(&trans);
al_scale_transform(&trans, xscale, yscale);
al_use_transform(&trans);
al_draw_bitmap_region(*bitmap, sx, sy, sw, sh, dx, dy, 0));
// restore the old transform
al_use_transform(&prevTrans);
关于c++ - Allegro 5 如何绘制缩放位图区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36612970/