#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <SDL/SDL.h>
#include <windows.h>
int main(int argc, char **argv)
{
bool gamerunning = true;
bool keysHeld[323] = {false}; // everything will be initialized to false
int level = 1;
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER );
SDL_Surface* screen = SDL_SetVideoMode(640, 480, 0, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("SDLTest", 0);
//Ladda BMP fil och ge den namnet bild
SDL_Surface* bakgrund = SDL_LoadBMP("Bakgrund.bmp");
SDL_Surface* gubbe = SDL_LoadBMP("Gubbe.bmp");
// Göm färgen Magneta för bild
SDL_SetColorKey(gubbe, SDL_SRCCOLORKEY, SDL_MapRGB(gubbe->format, 255, 0, 255));
//BakgrundBildens koordinater som ska laddas
SDL_Rect bakgrundDel;
bakgrundDel.x = 0;
bakgrundDel.y = 0;
bakgrundDel.w = 640;
bakgrundDel.h = 480;
//BakgrundBildens koordinater i SDL rutan
SDL_Rect bakgrundposition;
bakgrundposition.x = 0;
bakgrundposition.y = 0;
bakgrundposition.w = bakgrundDel.w;
bakgrundposition.h = bakgrundDel.h;
//GubbBildens koordinater som ska laddas
SDL_Rect gubbeDel;
gubbeDel.x = 0;
gubbeDel.y = 0;
gubbeDel.w = 40;
gubbeDel.h = 40;
//GubbBildens koordinater i SDL rutan
SDL_Rect gubbeposition;
gubbeposition.x = screen->w / 2 - (gubbeDel.w / 2);
gubbeposition.y = (screen->h / 2) - (gubbeDel.h / 2);
gubbeposition.w = gubbeDel.w;
gubbeposition.h = gubbeDel.h;
SDL_Event event;
while (gamerunning)
{
if (SDL_PollEvent(&event))
{
if (event.type == SDL_QUIT)
{
gamerunning = false;
}
if (event.type == SDL_KEYDOWN)
{
keysHeld[event.key.keysym.sym] = true;
}
if (event.type == SDL_KEYUP)
{
keysHeld[event.key.keysym.sym] = false;
}
}
if (keysHeld[SDLK_ESCAPE])
{
gamerunning = false;
}
if ( keysHeld[SDLK_LEFT] )
{
gubbeposition.x -= 1;
gubbeDel.x = 40;
}
if ( keysHeld[SDLK_RIGHT] )
{
gubbeposition.x += 1;
gubbeDel.x = 40;
}
if ( keysHeld[SDLK_UP] )
{
gubbeposition.y -= 1;
gubbeDel.x = 0;
}
if (keysHeld[SDLK_DOWN])
{
gubbeposition.y += 1;
gubbeDel.x = 0;
}
if (level==1)
{
if (gubbeposition.x == screen->w)
{
gubbeposition.x = 1;
bakgrundDel.x = 640;
level += 1;
}
}
if (level==2)
{
if (gubbeposition.x == screen->w)
{
gubbeposition.x = 0;
bakgrundDel.x = 1280;
level += 1;
}
else if (gubbeposition.x == 0)
{
gubbeposition.x = screen->w;
bakgrundDel.x = 0;
level -= 1;
}
}
//Gör skärmen svart efter varje loop
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
//Hämta en del av en .BMP fil. FIL / Del av bild / Yta / bild position
SDL_BlitSurface(bakgrund, &bakgrundDel, screen, &bakgrundposition);
SDL_BlitSurface(gubbe, &gubbeDel, screen, &gubbeposition);
SDL_Flip(screen);
SDL_Delay(1);
}
SDL_FreeSurface(gubbe);
SDL_FreeSurface(bakgrund);
SDL_Quit();
return 0;
}