D3DXSprite и показ текстур и их вращение по-разному - PullRequest
0 голосов
/ 12 августа 2011

У меня много текстур для отображения на экране, некоторые из этих текстур могут иметь вращение или другие преобразования. Все преобразования независимы. Нужно ли создавать D3DXSprite для каждой независимой текстуры? Потому что если я создаю только один спрайт и применяю преобразование, это влияет на каждую текстуру в спрайте Спасибо.

1 Ответ

0 голосов
/ 12 августа 2011

Нет, поскольку документация к ID3DXSprite :: Draw () гласит:

Чтобы масштабировать, вращать или переводить спрайт, вызовите ID3DXSprite :: SetTransform с матрицей, которая содержит масштабирование, поворот и преобразование(SRT), перед вызовом ID3DXSprite :: Draw.Для получения информации о настройке значений 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();
...