Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "SDL/SDL.h"
- using namespace std;
- //variabler
- bool quit = false;
- SDL_Event event;
- Uint8 *key;
- int playerX = 0;
- int playerY = 0;
- bool menuQuit = false;
- SDL_Surface* background = NULL;
- SDL_Surface* screen = NULL;
- SDL_Surface* player = NULL;
- SDL_Surface* menuBackground = NULL;
- SDL_Surface* menuStart = NULL;
- SDL_Surface* menuExit = NULL;
- SDL_Surface* arrow = NULL;
- void apply_surface(int x, int y, SDL_Surface* source, SDL_Surface* destination) {
- SDL_Rect offset;
- offset.x = x;
- offset.y = y;
- SDL_BlitSurface(source, NULL, destination, &offset);
- }
- void paint() {
- SDL_BlitSurface(background, NULL, screen, NULL);
- apply_surface(playerX, playerY, player, screen);
- }
- void clean() {
- SDL_FreeSurface(background);
- SDL_FreeSurface(player);
- SDL_FreeSurface(menuBackground);
- SDL_FreeSurface(menuStart);
- SDL_FreeSurface(menuExit);
- SDL_FreeSurface(arrow);
- }
- void menu() {
- bool up = false;
- int arrowY = 125;
- menuBackground = SDL_LoadBMP("image/menu/background.bmp");
- menuStart = SDL_LoadBMP("image/menu/start.bmp");
- menuExit = SDL_LoadBMP("image/menu/exit.bmp");
- arrow = SDL_LoadBMP("image/menu/arrow.bmp");
- while(menuQuit == false) {
- if( SDL_PollEvent (&event)) {
- apply_surface(0,0,menuBackground, screen);
- apply_surface(200,100,menuStart, screen);
- apply_surface(200,180,menuExit, screen);
- apply_surface(165, arrowY, arrow, screen);
- if(event.type == SDL_KEYDOWN) {
- switch(event.key.keysym.sym) {
- case SDLK_UP:
- if(up == true) {
- arrowY-=80;
- up = false;
- }
- break;
- case SDLK_DOWN:
- if(up == false) {
- arrowY+=80;
- up = true;
- }
- break;
- case SDLK_SPACE:
- if(up == false) {
- menuQuit = true;
- } else if(up == true) {
- quit = true;
- menuQuit = true;
- }
- }
- }
- else if(event.type == SDL_QUIT) {
- quit = true;
- }
- }
- SDL_Flip(screen);
- }
- }
- void keyInput() {
- if( SDL_PollEvent (&event)) {
- if(event.type == SDL_KEYDOWN) {
- switch(event.key.keysym.sym) {
- case SDLK_DOWN:
- playerY+=1;
- break;
- case SDLK_UP:
- playerY-=1;
- break;
- case SDLK_RIGHT:
- playerX+=1;
- break;
- case SDLK_LEFT:
- playerY-=1;
- break;
- //exit
- case SDLK_ESCAPE:
- quit = true;
- break;
- }
- }
- else if(event.type == SDL_QUIT) {
- quit = true;
- }
- }
- }
- int main(int argc, char* args[]) {
- SDL_Init(SDL_INIT_EVERYTHING);
- SDL_WM_SetCaption("Kaktus SDL Project", NULL);
- screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
- background = SDL_LoadBMP("image/background.bmp");
- player = SDL_LoadBMP("image/player.bmp");
- menu();
- while(quit == false) {
- paint();
- keyInput();
- SDL_Flip(screen);
- }
- clean();
- SDL_Quit();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment