Nochmal was zum drehen,
ich hatte vor ewigen Zeiten mal was mit 3D geschrieben. Allerdings in C
Das Ganze basiert auf vorberechneten Sin/Cos Tabellen.
Damit könnte man das Sprite sogar um die Z-Achse drehen.
x,y,z :Koordinaten im Raum
x2,y2 : Das 2D Ergebnis
fpx,fpy,fpz: Fluchtpunkte
w1,w2,w3: Die Winkel
xofs,yofs : 2D Position am Bildschirm
void rot_trans(int x,int y,int z,int &x2,int &y2,int w1,int w2,int w3)
{
double y_x,z_x,x_y,z_y,x_z,y_z;
y_x=(y*Cos[w1]-z*Sin[w1]); // Fly around X
z_x=(y*Sin[w1]+z*Cos[w1]);
x_y=(x*Cos[w2]+z_x*Sin[w2]); // Fly around Y
z_y=(-x*Sin[w2]+z_x*Cos[w2]);
x_z=(x_y*Cos[w3]-y_x*Sin[w3]); // Fly around Z
y_z=(x_y*Sin[w3]+y_x*Cos[w3]);
x2=xofs+((fpz-z_y+zofs)/fpz*x_z+z_y/fpz*fpx); // 3D -> 2D (x)
y2=yofs-((fpz-z_y+zofs)/fpz*y_z+z_y/fpz*fpy); // " (y)
}
Vielleicht hilfts ja 