D3DXSprite并显示纹理并以不同方式旋转它们

时间:2011-08-12 15:07:18

标签: directx 2d

我有很多纹理要在屏幕上显示,其中一些纹理可能有旋转或其他变换。所有转型独立。我是否需要为每个独立纹理创建D3DXSprite?因为,如果我只创建一个精灵并应用变换,它会对精灵中的每个纹理产生影响。感谢。

1 个答案:

答案 0 :(得分:0)

不,因为ID3DXSprite :: Draw()的文档声明:

要缩放,旋转或平移精灵,请在调用ID3DXSprite :: Draw之前使用包含缩放,旋转和平移(SRT)值的矩阵调用ID3DXSprite :: SetTransform。有关在矩阵中设置SRT值的信息,请参阅矩阵变换。

所以它看起来像这样:

d3dxSpriteObject.Begin([...]);
for(int i=0; i<numTextures; i++) 
{
    d3dxSpriteObject.SetTransform(matrix);
    d3dxSpriteObject.Draw(texture[i], NULL, textureCenter[i], texturePos[i], 0xffffffff);
}
d3dxSpriteObject.End();