Help with SDL.

Started by
1 comment, last by MrCpaw 15 years, 4 months ago
Hi everyone. I'd like to know how could I draw a image (image.png) the has 32x32 pixels in a SDL screen with a different size. Particularlly in percentage. Instead of drawing a 32x32 pixels image in the screen, I'd like to draw it as a 20%x20% of the screen....so I can draw 25 images on the screen, no matter what resolution I'm using and how large/small my image is. I'm making my own game, and that would be usefull since it's not a full screen game, and it will have variable resolution. For a person that has 800x600, the image might appear as 32x32 pixel, but for someone that uses 1600x1200, double the original resolution, I must have the image as 64x64 pixels, so the sight of view is the same. The way I thought of doing that was drawing it as % of the screen, instead of pixels. So, if anyone can help me with that, or maybe with another solution, I'd be gratefull. Thanks in advance, Emilio.
Advertisement
If you want to rescale each individual image (i.e. they have varying sizes) then using SDL will most likely be slow and I would recommend using a 3d API such as OpenGL where scaling is done similar to what you described.

However, there is also a library called SDL_gfx which has a rotozoom feature where you can stretch and rotate images if you wish to stick with just SDL for rendering.

If all of your individual images are the same size however then SDL with SDL_gfx may be more acceptable. I would make a surface that fits your desired dimensions for 25 images and do normal SDL_BlitSurface operations to that surface. Then stretch that image to the screen to give your desired effect. This makes only 1 expensive stretch call per frame as opposed to multiple.
Evillive2
Hello, for future references follow these two sites:

http://lazyfoo.net/SDL_tutorials/index.php
http://www.sdltutorials.com/

The first site shows you a lot of tutorials to get yourself started, the second site I haven't personally used but I'm sure it's worth checking out.

This topic is closed to new replies.

Advertisement