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);
不足しているものはありますか?