繁体   English   中英

D3DXMatrixTransformation2D表现怪异

[英]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,
            &center,
            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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM