我想将2D精灵旋转到他们的位置,而不是任何其他点,但我的功能有问题。
我看到人们以这种方式使用D3DXMatrixTransformation2D(不包括缩放):
D3DXMATRIX mat;
D3DXVECTOR2 center(sprite.width / 2, sprite.height / 2);
D3DXVECTOR2 pos(sprite.x, sprite.y)
D3DXMatrixTransformation2D(
&mat,
NULL,
NULL,
NULL,
¢er,
sprite.rotation,
&pos);
但是这样做,我的精灵在一个奇怪的点周围旋转了一圈。
我尝试并尝试了这个解决方案,但是当我进一步操纵实体坐标和东西时感觉它有一些副作用。
D3DXVECTOR2 pos(sprite.x + (sprite.width / 2), sprite.y + (sprite.height / 2))
D3DXMatrixTransformation2D(
&mat,
NULL,
NULL,
NULL,
&pos,
sprite.rotation,
NULL);
我缺少什么?
答案 0 :(得分:0)
如果您的图像文件的尺寸大于您尝试旋转的图像部分,那么可能会让您头疼一会儿的一个小问题。 我的意思是,如果您的图像文件是512x512,并且左下角只有64x64的小猫,其余部分是0 alpha,它将占据图像文件的中心,不是猫。
如果您正在发生这种情况,您可以将猫或其任何图像移动到图像文件的中心,或者在DirectX中进一步查看,您可以在其中定义矩形并使用该矩形作为图像文件的剪切,以绑定您的图像(猫)。