Quote:Perhaps you can give more info on how you set up your rendering (why you are having problems with SetTransform?) It looks like you should be able to make ID3DXSprite work for you, but instead you are trying to roll your own, which is by far not a simple task. For "general" case scenarios, you probably can't create something that is better than ID3DXSprite.
I am trying to make an actio 2D rts game that takes place in Space. So I am going to have a lot of sprites I need for this. Imagine two armies of fighters, cruisers, and capitol ships clashing. There might be 100 of each, and they are shooting bullets and missiels at each other, maybe even lasers if I decided to try and figure out how to make my own procedural textures to use.
After I am done with the basic game logic, which is where each unit goes, what direction it is facing, and what other effects are going, like explosions, Ill have a big list of game objects that Ill need to render.
Ill end up with a bunch of sprites of a few size classes 16x as bullets, 32x as fighters, 64x as bigger ships, and maybe even a few 128x capitol ships. Some of these might not need rotation because a bullet might be round. Most of them will.
All of them will need scaling because I do not know of another way to keep the aspect ratio and position on the screen independent of the resolution. I can't just say Unit 112 has an X location of 600, because it would appear in different relative spots on a system running 800x600 vs 1920x1200. I also have the issue of knowing the screen is in 1920x1200 but the viewport is only 400x400 because the window is shrunk.
Then of course, there is the final location of the sprite. I am not sure if I should try and figure out of each sprite is on screen or just pump them all out and let the render system figure out if it wants to cull it or not.
With all that in mind, I now need to render all the sprites. I was using the sprite class to draw them all using the Draw function. Only when I tried to rotate and scale them, it applied to ALL sprites, not the last one I did the Sprite.draw() with. I was stuck. So this is why I went with my own sprite class.