Now I am trying to get the image to just move off center a little bit by using differant x and y values. But when I run this program the image move off screen in increments. Ironically this is the effect I wanted but, I didn't think I was ready so i was just trying to move image a little bit off center not have it keep moving. So here is my code the problem is that the images keeps moving rather than just blitting onto the screen a bit off center. Not any where in the code do I modify xpos or ypos, that I can tell, so I Dont see why when ever I redraw the screen the image moves.
Code:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> #include "SDL.h" using namespace std; SDL_Surface *scrn1, *back; int misc; int xpos=2; int ypos=1; int InitSDL(); int Setscreenvidmode(); int Blitscreen(SDL_Surface *scrn, SDL_Surface *scrnn); int SwitchLoadImg(SDL_Surface *scrn,int imgnum); int main(int argc, char*argv[]){ int imgnum=1,done=0; InitSDL(); atexit(SDL_Quit); Setscreenvidmode(); SwitchLoadImg(scrn1,imgnum); while(done == 0) { Blitscreen(scrn1,back); if (imgnum>4){imgnum=1;} SDL_Event event; while ( SDL_PollEvent(&event) ) { if ( event.type == SDL_QUIT ) { done = 1; } if ( event.type == SDL_KEYDOWN ) { if ( event.key.keysym.sym == SDLK_ESCAPE ) { done = 1; } if ( event.key.keysym.sym == SDLK_n) {SwitchLoadImg(scrn1,++imgnum);} } } }}//////////////////////////////////////////END OF MAIN////////////////////// int InitSDL() { if ((SDL_Init(SDL_INIT_VIDEO||SDL_INIT_AUDIO))<0){ cout<<SDL_GetError(); } }; int Setscreenvidmode(){ scrn1 = SDL_SetVideoMode(500,380,32,SDL_SWSURFACE||SDL_DOUBLEBUF); back = SDL_SetVideoMode(500,380,32,SDL_SWSURFACE||SDL_DOUBLEBUF); }; int Blitscreen(SDL_Surface *scrnn, SDL_Surface *scrn){ SDL_Rect trect; trect.x=xpos; trect.y=ypos; SDL_BlitSurface(scrnn,NULL,scrn,&trect); SDL_Flip(scrn); }; int SwitchLoadImg(SDL_Surface *scrn,int imgnum){ SDL_Surface *temp; switch (imgnum){ case 1: temp = SDL_LoadBMP("Pic1.bmp"); break; case 2: temp = SDL_LoadBMP("Pic2.bmp"); break; case 3: temp = SDL_LoadBMP("Pic3.bmp"); break; case 4: temp = SDL_LoadBMP("Pic4.bmp"); break; default: temp = SDL_LoadBMP("Pic1.bmp"); break; } SDL_BlitSurface(temp,NULL,scrn,NULL); };



LinkBack URL
About LinkBacks


