[英]D3DXMatrixTransformation2D acting weird
我想将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);
但是这样做时,我的精灵会绕着一个奇怪的点以laaaaarge圆旋转。
我尝试并尝试了这个解决方案,但是当我进一步操纵实体坐标和东西时,感觉好像有一些副作用。
D3DXVECTOR2 pos(sprite.x + (sprite.width / 2), sprite.y + (sprite.height / 2))
D3DXMatrixTransformation2D(
&mat,
NULL,
NULL,
NULL,
&pos,
sprite.rotation,
NULL);
我有什么想念的吗?
一个小问题是,如果图像文件的尺寸大于要旋转的图像部分,则可能使您抓挠一段时间。 我的意思是,如果您的图片文件位于512x512之类的位置,并且您的左下方有一只小猫,只有64x64,其余的为0 alpha,它将占据图片文件的中心,不是猫。
如果发生这种情况,您可以将猫或它的任何图像移动到图像文件的中心,或者在DirectX中进一步看一下,您可以在其中定义一个矩形并将其用作切口-从图像文件中移出以绑定图像(猫)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.