Hi,
I have TSprite class which has texture and some other variables to control sprite itself.
In DirectX 8 there was rotation argument in ID3DXSprite.Draw() function but now in DX 9 it's gone.
So, if I have TD3DMatrix variable in my TSprite class and some private functions which translates and rotates sprite by using D3DXMatrixTranslation, D3DMatrixMultiply and etc. functions. How I can draw sprite with translated, rotated and etc. coordinates?
I mean that Draw() function takes @TD3DXVector3 structure in position for example, but how I obtain that position in vector because I'm using matrices for translation? Littlebit confusing.
For example....
Code:type TSprite = Class private Texture: IDirect3DTexture9; Position: TD3DXVector; Origo: TD3DXVector; TransFrm: TD3DMatrix; procedure Rotate(Degrees: integer) ; public procedure Draw; constructor Create; destructor Destroy; end; procedure TSprite.Rotate(); begin // calculates rotation here and stores it to TransFrm matrix. end. procedure TSprite.Draw; begin D3DXSprite.SetTransform(TransFrm); // How this sould be called so that matrice effects? D3DXSprite.Draw(Texture, @rect, @Origo, @Position, $FFFFFFFF); end;


Reply With Quote