Ich versuche ein Kartenspiel zu machen, bei dem die Karten auffächern. Im Moment benutze ich die Allegro-API, die eine Funktion hat:
al_draw_rotated_bitmap(OBJECT_TO_ROTATE,CENTER_X,CENTER_Y,X
,Y,DEGREES_TO_ROTATE_IN_RADIANS);
So kann ich meinen Fan-Effekt leicht machen. Das Problem ist dann zu wissen, welche Karte sich unter der Maus befindet. Dazu habe ich mir überlegt, einen Polygonkollisionstest durchzuführen. Ich bin mir nur nicht sicher, wie ich die 4 Punkte auf der Karte drehen soll, um das Polygon zu bilden. Ich muss im Grunde die gleiche Operation wie Allegro durchführen.
Zum Beispiel sind die 4 Punkte der Karte:
card.x
card.y
card.x + card.width
card.y + card.height
Ich würde eine Funktion brauchen wie:
POINT rotate_point(float cx,float cy,float angle,POINT p)
{
}
Vielen Dank