Gå til innhold

bakgrunn borte ved fullskjerm i sdl


Anbefalte innlegg

Videoannonse
Annonse
Skrevet

Den er forandret og forenklet litt, men her er den:

// "Graphics with SDL" turorial series Lesson 2
// by Marius Andra (http;//cone3d.gamedev.net/)
//
// NOTE: don't be alarmed if running this from
// Dev-C++ turns up a black screen. Compile it and then
// run it from the sources folder.

#include <stdio.h>
#include <stdlib.h>

#include <SDL/SDL.h>

SDL_Surface *back;
SDL_Surface *screen;

int xpos=0,ypos=0;


void Slock(SDL_Surface *screen)
{
 if ( SDL_MUSTLOCK(screen) )
 {
   if ( SDL_LockSurface(screen) < 0 )
   {
     return;
   }
 }
}

void Sulock(SDL_Surface *screen)
{
 if ( SDL_MUSTLOCK(screen) )
 {
   SDL_UnlockSurface(screen);
 }
}

void DrawIMG(SDL_Surface *img, int x, int y)
{
 SDL_Rect dest;
 dest.x = x;
 dest.y = y;
 SDL_BlitSurface(img, NULL, screen, &dest);
}

void DrawIMG(SDL_Surface *img, int x, int y, int w, int h, int x2, int y2)
{
 SDL_Rect dest;
 dest.x = x;
 dest.y = y;
 SDL_Rect dest2;
 dest2.x = x2;
 dest2.y = y2;
 dest2.w = w;
 dest2.h = h;
 SDL_BlitSurface(img, &dest2, screen, &dest);
}

void DrawBG()
{
 Slock(screen);
 DrawIMG(back, 0, 0);
 Sulock(screen);
}

void DrawScene()
{
 Slock(screen);
 DrawIMG(back, xpos-2, ypos-2, 132, 132, xpos-2, ypos-2);

 SDL_Flip(screen);
 Sulock(screen);
}

int main(int argc, char *argv[])
{
 Uint8* keys;

 SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO);
 atexit(SDL_Quit);
 screen=SDL_SetVideoMode(640,480,32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN); // det er her problemene begynner!

 back = SDL_LoadBMP("bg.bmp");
 DrawBG();

 int done=0;

 while(done == 0)
 {
   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; }
     }
   }

   DrawScene();
 }

 return 0;
}

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...