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