Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "SDL/SDL.h"
- #include <iostream>
- #include <vector>
- #define SCREEN_WIDTH 400
- #define SCREEN_HEIGHT 200
- #define SPRITE_SIZE 10
- using namespace std;
- vector<vector<int> > generateMap() {
- vector<vector<int> > vMap;
- int horizPos;
- int vertPos=rand()%(SCREEN_HEIGHT/SPRITE_SIZE);
- for(int i=0;i<(SCREEN_WIDTH/SPRITE_SIZE);i++) {
- vector<int> vSubmap;
- horizPos=i;
- for(int j=0;j<(SCREEN_HEIGHT/SPRITE_SIZE)-1;j++) {
- if(!vSubmap.empty()) {
- vSubmap.clear();
- }
- if(j<vertPos) {
- vSubmap.push_back(1);
- }
- else if(j==vertPos) {
- vSubmap.push_back(2);
- }
- else if(j>vertPos) {
- vSubmap.push_back(0);
- }
- }
- vMap.push_back(vSubmap);
- }
- }
- int main (int argc,char *argv[]) {
- SDL_Surface *screen, *temp;
- SDL_Rect rcTile;
- SDL_Event event;
- Uint8 *keystate;
- int gameRunning=1;
- SDL_Init(SDL_INIT_VIDEO);
- SDL_WM_SetCaption("SDL TILE TEST","");
- screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0);
- vector<vector<int> > tileMap;
- tileMap=generateMap();
- /*
- TileA Sky
- TileB Dirt
- TileC Grass
- */
- temp=SDL_LoadBMP("sky.bmp");
- SDL_Surface *TileA =SDL_DisplayFormat(temp);
- SDL_FreeSurface(temp);
- temp=SDL_LoadBMP("dirt.bmp");
- SDL_Surface *TileB =SDL_DisplayFormat(temp);
- SDL_FreeSurface(temp);
- temp=SDL_LoadBMP("grass.bmp");
- SDL_Surface *TileC =SDL_DisplayFormat(temp);
- SDL_FreeSurface(temp);
- while (gameRunning) {
- if (SDL_PollEvent(&event)) {
- switch (event.type) {
- case SDL_QUIT:
- gameRunning=0;
- break;
- case SDL_KEYDOWN:
- switch (event.key.keysym.sym) {
- case SDLK_ESCAPE:
- case SDLK_q:
- gameRunning=0;
- break;
- }
- break;
- }
- }
- /*
- keystate = SDL_GetKeyState(NULL);
- if (keystate[SDLK_LEFT] ) {
- //doshit
- }*/
- for (int x = 0; x < SCREEN_WIDTH / SPRITE_SIZE; x++) {
- for (int y = 0; y < SCREEN_HEIGHT / SPRITE_SIZE; y++) {
- rcTile.x = x * SPRITE_SIZE;
- rcTile.y = y * SPRITE_SIZE;
- if(tileMap[x][y]==0) {
- SDL_BlitSurface(TileA,NULL,screen,&rcTile);
- }
- else if(tileMap[x][y]==1) {
- SDL_BlitSurface(TileB,NULL,screen,&rcTile);
- }
- else if(tileMap[x][y]==2) {
- SDL_BlitSurface(TileC, NULL, screen, &rcTile);
- }
- }
- }
- /* draw the sprite */
- // SDL_BlitSurface(TileA, NULL, screen, &rcTileA);
- /* update the screen */
- SDL_UpdateRect(screen, 0, 0, 0, 0);
- }
- /* clean up */
- SDL_FreeSurface(TileA);
- SDL_FreeSurface(TileB);
- SDL_FreeSurface(TileC);
- SDL_Quit();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement