It didn't change anything.
*Have to link "SDL.lib" and "SDLmain.lib" (need SDL).
*Have to place "SDL.dll" at the .EXE's folder.
*Have to place the images for the "graphics" at the poject's folder (pojectname\projectname).
#include "SDL.h"#include <cstdlib>SDL_Surface *screen;class cPlayer{public: int x,y; SDL_Surface *image; SDL_Rect src, dest; void setImage(char* file_name) { player.image = SDL_LoadBMP(file_name); player.image = SDL_DisplayFormat(player.image); player.src.x = 0; player.src.y = 0; player.src.w = player.image->w; player.src.h = player.image->h; player.dest.x = x*32; player.dest.y = y*32; player.dest.w = player.image->w; player.dest.h = player.image->h; }}player;class cTile{public: SDL_Surface *image; SDL_Rect src, dest;};class cLevel{public: int map[15][20]; cTile tile[15][20]; void setMap(int map[15][20]) { for(int y=0; y < 15; y++) { for(int x=0; x < 20; x++) { level.map[y][x] = map[y][x]; } } }}level;//set the player's positionvoid movePlayer(int destX, int destY) { player.x = destX; player.y = destY;}//check if a tile is free for the player to move tovoid isTileFree(int x, int y) { int posX = player.x+x; int posY = player.y+y; int tile = level.map[posY][posX]; switch(tile) { case 0: movePlayer(posX,posY); break; } return;}//check for specific inputvoid checkInput(SDL_KeyboardEvent *key) { switch(key->keysym.sym) { case SDLK_UP: isTileFree(0,-1); break; case SDLK_DOWN: isTileFree(0,1); break; case SDLK_LEFT: isTileFree(-1,0); break; case SDLK_RIGHT: isTileFree(1,0); break; }}//load a .BMP file to the screenvoid loadBMP(char* file_name, int x, int y) { level.tile[y][x].image = SDL_LoadBMP(file_name); if(level.tile[y][x].image == NULL) { return; } level.tile[y][x].image = SDL_DisplayFormat(level.tile[y][x].image); level.tile[y][x].src.x = 0; level.tile[y][x].src.y = 0; level.tile[y][x].src.w = level.tile[y][x].image->w; level.tile[y][x].src.h = level.tile[y][x].image->h; level.tile[y][x].dest.x = x*32; level.tile[y][x].dest.y = y*32; level.tile[y][x].dest.w = level.tile[y][x].image->w; level.tile[y][x].dest.h = level.tile[y][x].image->h;}//display a BMP image on the screenvoid displayBMP(SDL_Surface *image,SDL_Rect src, SDL_Rect dest, int x, int y) { SDL_BlitSurface(image, &src, screen, &dest);}//check which image to draw for a tilevoid loadTile(int tile,int x, int y) { switch(tile) { case 0: loadBMP("tile0.bmp",x,y); break; case 1: loadBMP("tile1.bmp",x,y); break; case 2: loadBMP("tile2.bmp",x,y); break; }}//load a map to the screenvoid loadMap(int map[15][20]) { for(int y=0; y < 15; y++) { for(int x=0; x < 20; x++) { loadTile(map[y][x],x,y); } }}//display a tilevoid displayTile(int x, int y) { displayBMP(level.tile[y][x].image,level.tile[y][x].src,level.tile[y][x].dest,x,y);}//display a mapvoid displayMap(int map[15][20]) { for(int y=0; y < 15; y++) { for(int x=0; x < 20; x++) { displayTile(x,y); } }}//update the screenvoid updateDisplay() { displayMap(level.map); displayBMP(player.image,player.src,player.dest, player.x * 32, player.y * 32); SDL_Flip(screen);}int main(int argc, char *argv[]) { //initialize SDL if(SDL_Init(SDL_INIT_VIDEO) != 0) { return 1; } atexit(SDL_Quit); //set video mode screen = SDL_SetVideoMode(640,480,16, SDL_DOUBLEBUF); if(screen == NULL) { return 1; } //set stuff SDL_WM_SetCaption("Tile Map", NULL); SDL_Event event; int running = 1; player.x = 2; player.y = 7; player.setImage("player.bmp"); int map1[15][20] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, 1,0,2,0,2,0,2,2,2,0,2,0,0,0,2,0,0,0,0,1, 1,0,2,0,2,0,2,0,0,0,2,0,0,0,2,0,0,0,0,1, 1,0,2,2,2,0,2,2,2,0,2,0,0,0,2,0,0,0,0,1, 1,0,2,0,2,0,2,0,0,0,2,0,0,0,2,0,0,0,0,1, 1,0,2,0,2,0,2,2,2,0,2,2,2,0,2,2,2,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,2,0,2,0,2,2,2,0,2,2,2,0,2,0,2,0,0,1, 1,0,2,0,2,0,2,0,0,0,2,0,2,0,2,0,2,0,0,1, 1,0,0,2,0,0,2,2,2,0,2,2,2,0,2,2,2,0,0,1, 1,0,0,2,0,0,2,0,0,0,2,0,2,0,2,0,2,0,0,1, 1,0,0,2,0,0,2,2,2,0,2,0,2,0,2,0,2,0,0,1, 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; level.setMap(map1); loadMap(level.map); //main loop while(running) { //check input while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_KEYDOWN: checkInput(&event.key); break; case SDL_QUIT: running = 0; break; } } //update the screen updateDisplay(); //dalay program SDL_Delay(5); } return 0;}