Jump to content
  • Advertisement
Sign in to follow this  
Thors1982

Help with Sprite Manipulation

This topic is 4427 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have a few questions. And I wasn't really sure what the subject should be so hopefully it was good enoguh :-) I am writing a isometric game in directX 9, and I am using sprites of course to draw each tile. There are a few things I don't know how to do though, I am assuming there is a DirectX way to do both. 1: Flip a tile vertically I was only going to have a file with guys facing up-left and down-left, but if I could flip it with code I could also have them facing up-right and down-right. 2: Give a tile a Hue or color. My texture for the player is mostly grey/white/black, and I was thinking if I could color it with code I could have players choose their skin tone. Also could use this for multiple color trees and more. Hopefully I explained that well enough. Thanks in advance

Share this post


Link to post
Share on other sites
Advertisement
(1) You can use ID3DXSprite::SetTransform() to do this kind of thing. Just compose your matrix (ie transformation, rotation, ect), then set it with this.

(2) The final parameter of ID3DXSprite::Draw() is a modulation color. You can use this to shade your textures.

Share this post


Link to post
Share on other sites
Ok, i should have known the color one, i dunno what I was thinking. But I am having problems getting the Transform to work.


D3DXMATRIX start;
D3DXMATRIX flip;
D3DXMatrixIdentity(&flip);
D3DXMatrixIdentity(&start);
D3DXMatrixScaling(&flip, -1.0, 1.0, 1.0);
D3DXMatrixMultiply(&start, &start, &flip);
sprite->SetTransform(&start);



After I do that the sprite dissapears. Am I using the wrong transformation or is there something I just don't understand.

Share this post


Link to post
Share on other sites
Quote:
Original post by Thors1982
After I do that the sprite dissapears. Am I using the wrong transformation or is there something I just don't understand.


Does the sprite reappear if you disable Culling? (with SetRenderstate)

Share this post


Link to post
Share on other sites
I actually turn off culling right after I initilize DirectX.

[Edited by - Thors1982 on July 6, 2006 4:09:44 PM]

Share this post


Link to post
Share on other sites
Quote:
Original post by Thors1982
After I do that the sprite dissapears. Am I using the wrong transformation or is there something I just don't understand.

Can you try a simpler transform first to see if that works? Something easy, like rotating 45 degrees or something.

Share this post


Link to post
Share on other sites
Any transformation I do like shifts the character away from the center of the screen

if I do a D3DXMatrixRotationZ(&flip, .3);

or a D3DXMatrixScaling(&flip, .5, .5, 1.0);

the character moves, away from the center of the screen, so im assuming that when i did a -1 scaling it just moved the sprite off the screen. So obvioulsy I am not doing something right. I don't know why scaling something would change where the sprite is drawn.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!