最佳答案
我想做一个纸牌游戏,把纸牌分散开来。现在使用 Allegro API 来显示它,它有一个函数:
al_draw_rotated_bitmap(OBJECT_TO_ROTATE,CENTER_X,CENTER_Y,X
,Y,DEGREES_TO_ROTATE_IN_RADIANS);
这样我就可以很容易地使我的风扇效果。问题是要知道哪张卡在鼠标下面。为了做到这一点,我想做一个多边形碰撞测试。我只是不知道如何旋转卡片上的4个点来组成多边形。我基本上需要做和 Allegro 一样的手术。
例如,该卡的4个点是:
card.x
card.y
card.x + card.width
card.y + card.height
我需要一个函数,比如:
POINT rotate_point(float cx,float cy,float angle,POINT p)
{
}
谢谢