Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.22 KB | None | 0 0
  1. /*This source code copyrighted by Lazy Foo' Productions (2004-2019)
  2. and may not be redistributed without written permission.*/
  3.  
  4. //Using SDL, SDL_image, standard IO, and strings
  5. #include <SDL2/SDL.h>
  6. #include <SDL2/SDL_image.h>
  7. #include <stdio.h>
  8. #include <string>
  9.  
  10. //Screen dimension constants
  11. const int SCREEN_WIDTH = 800;
  12. const int SCREEN_HEIGHT = 640;
  13.  
  14. //Texture wrapper class
  15. class LTexture
  16. {
  17.     public:
  18.         //Initializes variables
  19.         LTexture();
  20.  
  21.         //Deallocates memory
  22.         ~LTexture();
  23.  
  24.         //Loads image at specified path
  25.         bool loadFromFile( std::string path );
  26.         //Deallocates texture
  27.         void free();
  28.  
  29.        
  30.         //Renders texture at given point
  31.         void render( int x, int y, SDL_Rect* clip = NULL, double angle = 0.0, SDL_Point* center = NULL, SDL_RendererFlip flip = SDL_FLIP_NONE );
  32.  
  33.  
  34.     private:
  35.         //The actual hardware texture
  36.         SDL_Texture* mTexture;
  37.  
  38.         //Image dimensions
  39.         int mWidth;
  40.         int mHeight;
  41. };
  42.  
  43. class Player
  44. {
  45.     public:
  46.         //The dimensions of the dot
  47.         static const int DOT_WIDTH = 32;
  48.         static const int DOT_HEIGHT = 48;
  49.  
  50.         //Maximum axis velocity of the dot
  51.         static const int DOT_VEL = 4;
  52.  
  53.         //Initializes the variables
  54.         void init();
  55.  
  56.         //Takes key presses and adjusts the dot's velocity
  57.         void handleEvent( SDL_Event& e );
  58.  
  59.         //Moves the dot
  60.         void move();
  61.  
  62.         //Shows the dot on the screen
  63.         void render();
  64.  
  65.     private:
  66.         //The X and Y offsets of the dot
  67.         int xpos, ypos;
  68.  
  69.         //The velocity of the dot
  70.         double velX, velY;
  71. };
  72.  
  73.  
  74. //Starts up SDL and creates window
  75. bool init();
  76.  
  77. //Loads media
  78. bool loadMedia();
  79.  
  80. //Frees media and shuts down SDL
  81. void close();
  82.  
  83. //The window we'll be rendering to
  84. SDL_Window* gWindow = NULL;
  85.  
  86. //The window renderer
  87. SDL_Renderer* gRenderer = NULL;
  88.  
  89. //Scene textures
  90. SDL_Rect gSpriteClips[ 7 ];
  91. SDL_Rect gSpriteWalk[2];
  92. SDL_Rect gSpriteJump[2];
  93. LTexture gSpriteSheetTexture;
  94. LTexture gSpriteWalkTexture;
  95. LTexture gSpriteJumpTexture;
  96. LTexture gDotTexture;
  97.  
  98. int isAttacking=0;
  99. SDL_RendererFlip flipType = SDL_FLIP_NONE;
  100. int flipflag =0;
  101.  
  102. LTexture::LTexture()
  103. {
  104.     //Initialize
  105.     mTexture = NULL;
  106.     mWidth = 0;
  107.     mHeight = 0;
  108. }
  109.  
  110. LTexture::~LTexture()
  111. {
  112.     //Deallocate
  113.     free();
  114. }
  115.  
  116. bool LTexture::loadFromFile( std::string path )
  117. {
  118.     //Get rid of preexisting texture
  119.     free();
  120.  
  121.     //The final texture
  122.     SDL_Texture* newTexture = NULL;
  123.  
  124.     //Load image at specified path
  125.     SDL_Surface* loadedSurface = IMG_Load( path.c_str() );
  126.     if( loadedSurface == NULL )
  127.     {
  128.         printf( "Unable to load image %s! SDL_image Error: %s\n", path.c_str(), IMG_GetError() );
  129.     }
  130.     else
  131.     {
  132.         //Color key image
  133.         SDL_SetColorKey( loadedSurface, SDL_TRUE, SDL_MapRGB( loadedSurface->format, 0, 0xFF, 0xFF ) );
  134.  
  135.         //Create texture from surface pixels
  136.         newTexture = SDL_CreateTextureFromSurface( gRenderer, loadedSurface );
  137.         if( newTexture == NULL )
  138.         {
  139.             printf( "Unable to create texture from %s! SDL Error: %s\n", path.c_str(), SDL_GetError() );
  140.         }
  141.         else
  142.         {
  143.             //Get image dimensions
  144.             mWidth = loadedSurface->w;
  145.             mHeight = loadedSurface->h;
  146.         }
  147.  
  148.         //Get rid of old loaded surface
  149.         SDL_FreeSurface( loadedSurface );
  150.     }
  151.  
  152.     //Return success
  153.     mTexture = newTexture;
  154.     return mTexture != NULL;
  155. }
  156.  
  157.  
  158. void LTexture::free()
  159. {
  160.     //Free texture if it exists
  161.     if( mTexture != NULL )
  162.     {
  163.         SDL_DestroyTexture( mTexture );
  164.         mTexture = NULL;
  165.         mWidth = 0;
  166.         mHeight = 0;
  167.     }
  168. }
  169.  
  170.  
  171. void LTexture::render( int x, int y, SDL_Rect* clip, double angle, SDL_Point* center, SDL_RendererFlip flip )
  172. {
  173.     //Set rendering space and render to screen
  174.     SDL_Rect renderQuad = { x, y, mWidth, mHeight };
  175.  
  176.     //Set clip rendering dimensions
  177.     if( clip != NULL )
  178.     {
  179.         renderQuad.w = clip->w;
  180.         renderQuad.h = clip->h;
  181.     }
  182.  
  183.     //Render to screen
  184.     SDL_RenderCopyEx( gRenderer, mTexture, clip, &renderQuad, angle, center, flip );
  185. }
  186.  
  187.  
  188. void Player::init()
  189. {
  190.     //Initialize the offsets
  191.     xpos = 0;
  192.     ypos = 550;
  193.  
  194.     //Initialize the velocity
  195.     velX = 0;
  196.     velY = 0;
  197. }
  198.  
  199. void Player::handleEvent( SDL_Event& e )
  200. {
  201.     //If a key was pressed
  202.     if( e.type == SDL_KEYDOWN && e.key.repeat == 0)
  203.     {
  204.         //Adjust the velocity
  205.         switch( e.key.keysym.sym )
  206.         {
  207.             case SDLK_UP:   velY = -5.0; break;
  208.             //case SDLK_DOWN: velY += DOT_VEL; break;
  209.             case SDLK_LEFT: velX = -7.5; break;
  210.             case SDLK_RIGHT: velX = 7.5; break;
  211.         }
  212.  
  213.         if(e.key.keysym.sym==SDLK_SPACE)
  214.         {
  215.             isAttacking = 1;
  216.         }
  217.     }
  218.     //If a key was released
  219.     else if( e.type == SDL_KEYUP && e.key.repeat == 0)
  220.     {
  221.         isAttacking = 0;
  222.         //Adjust the velocity
  223.         switch( e.key.keysym.sym)
  224.         {
  225.             //case SDLK_UP:  velY += DOT_VEL;break;
  226.             //case SDLK_DOWN:  velY -= DOT_VEL; break;
  227.             case SDLK_LEFT:  velX = 0; break;
  228.             case SDLK_RIGHT: velX = 0; break;
  229.         }
  230.     }
  231. }
  232.  
  233. /*void Player::move()
  234. {
  235.     //Move the dot left or right
  236.     xpos += velX;
  237.  
  238.     //If the dot went too far to the left or right
  239.     if( ( xpos < 0 ) || ( xpos + DOT_WIDTH > SCREEN_WIDTH ) )
  240.     {
  241.         //Move back
  242.         xpos -= velX;
  243.     }
  244.  
  245.     //Move the dot up or down
  246.     ypos += velY;
  247.  
  248.     //If the dot went too far up or down
  249.     if( ( ypos < 0 ) || ( ypos + DOT_HEIGHT > SCREEN_HEIGHT ) )
  250.     {
  251.         //Move back
  252.         ypos -= velY;
  253.     }
  254. }*/
  255.  
  256.  
  257.  
  258. void Player::render()
  259. {
  260.     int frame = 0;
  261.  
  262.     //While application is running
  263.    
  264.  
  265.                         if( velX > 0 && velY==0)
  266.                         {
  267.                             if(flipflag == 1)
  268.                             {
  269.                                 flipType = SDL_FLIP_HORIZONTAL;
  270.                                 flipflag = 0;
  271.                             }
  272.                             else
  273.                                 flipType = SDL_FLIP_NONE;
  274.                
  275.                             for(int frame=0;frame<10;frame++)
  276.                             {
  277.                                 //Render current frame
  278.                                 SDL_Rect* currentClip = &gSpriteWalk[ frame /5   ];
  279.                                 gSpriteWalkTexture.render( ( xpos - currentClip->w ) / 2, ( ypos - currentClip->h ) / 2, currentClip , 0, NULL, flipType );
  280.                                 xpos++;
  281.                                 //Update screen
  282.                                 SDL_RenderPresent( gRenderer );
  283.  
  284.                                 //Go to next frame
  285.                                 //++frame;
  286.  
  287.                                 //Cycle animation
  288.                                 if( frame / 5 >= 2 )
  289.                                 {
  290.                                     frame = 0;
  291.                                     //SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  292.                                     //SDL_RenderClear( gRenderer );
  293.  
  294.                                 }
  295.                                 SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  296.                                 SDL_RenderClear( gRenderer );
  297.                                 xpos+=velX;
  298.                             }
  299.                         }
  300.  
  301.                         else if( velX < 0  && velY==0)
  302.                         {
  303.                            
  304.                             if(flipflag==0)
  305.                             {
  306.                                 flipType = SDL_FLIP_HORIZONTAL;
  307.                                 flipflag = 1;
  308.                             }
  309.  
  310.                             for(int frame=0;frame<10;frame++)
  311.                             {
  312.                                 //Render current frame
  313.                                 SDL_Rect* currentClip = &gSpriteWalk[ frame /5   ];
  314.                                 gSpriteWalkTexture.render( ( xpos - currentClip->w ) / 2, ( ypos - currentClip->h ) / 2, currentClip, 0, NULL, flipType  );
  315.                                 xpos--;
  316.                                 //Update screen
  317.                                 SDL_RenderPresent( gRenderer );
  318.  
  319.                                 //Go to next frame
  320.                                 //++frame;
  321.  
  322.                                 //Cycle animation
  323.                                 if( frame / 5 >= 2 )
  324.                                 {
  325.                                     frame = 0;
  326.                                     //SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  327.                                     //SDL_RenderClear( gRenderer );
  328.  
  329.                                 }
  330.                                 SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  331.                                 SDL_RenderClear( gRenderer );
  332.                                 xpos+=velX;
  333.                             }
  334.                         }
  335.  
  336.                         else if(velY < 0)
  337.                         {
  338.                             while(velY < 0)
  339.                             {
  340.                                 if(flipflag ==0)
  341.                                 {
  342.                                     flipType = SDL_FLIP_NONE;
  343.                                 }
  344.                                 else flipType = SDL_FLIP_HORIZONTAL;
  345.                                
  346.                                     //Render current frame
  347.                                     SDL_Rect* currentClip = &gSpriteJump[ 0 ];
  348.                                     gSpriteJumpTexture.render( ( xpos - currentClip->w ) / 2, ( ypos - currentClip->h ) / 2, currentClip , 0, NULL, flipType );
  349.                                     //ypos -= 5;
  350.  
  351.                                     //Update screen
  352.                                     SDL_RenderPresent( gRenderer );
  353.  
  354.                                     //Go to next frame
  355.                                     //++frame;
  356.  
  357.                                     //Cycle animation
  358.                                    
  359.                                     SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  360.                                     SDL_RenderClear( gRenderer );
  361.                                     xpos+=velX;
  362.                                     ypos+=velY;
  363.                                     velY+=0.4;
  364.                                     if(velY > 0) break;
  365.                             }
  366.                             velY=0.0;
  367.                             if(ypos<451&&velY==0.0)
  368.                             {
  369.                                 while(ypos<451)
  370.                                 {
  371.                                     if(flipflag ==0)
  372.                                     {
  373.                                         flipType = SDL_FLIP_NONE;
  374.                                     }
  375.                                     else flipType = SDL_FLIP_HORIZONTAL;
  376.                                    
  377.                                         //Render current frame
  378.                                         SDL_Rect* currentClip = &gSpriteJump[ 1 ];
  379.                                         gSpriteJumpTexture.render( ( xpos - currentClip->w ) / 2, ( ypos - currentClip->h ) / 2, currentClip , 0, NULL, flipType );
  380.                                         //y -= 5;
  381.  
  382.                                         //Update screen
  383.                                         SDL_RenderPresent( gRenderer );
  384.  
  385.                                         //Go to next frame
  386.                                         //++frame;
  387.  
  388.                                         //Cycle animation
  389.                                        
  390.                                         SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  391.                                         SDL_RenderClear( gRenderer );
  392.                                         xpos+=velX;
  393.                                         ypos+=velY;
  394.                                         velY+=0.4;
  395.                                 }
  396.                                 velY=0.0;
  397.                                 ypos=450;
  398.                                
  399.                             }
  400.  
  401.                             else if(isAttacking == 1)
  402.                             {
  403.                                 if(flipflag == 1)
  404.                                 {
  405.                                     flipType = SDL_FLIP_HORIZONTAL;
  406.                                     //flipflag = 0;
  407.                                 }
  408.                                 else
  409.                                     flipType = SDL_FLIP_NONE;
  410.                                 for(int frame=0;frame<35;frame++)
  411.                                 {
  412.                                     //Render current frame
  413.                                     SDL_Rect* currentClip = &gSpriteClips[ frame /5  ];
  414.                                     gSpriteSheetTexture.render( ( xpos - currentClip->w ) / 2, ( ypos - currentClip->h ) / 2, currentClip , 0, NULL, flipType );
  415.  
  416.                                     //Update screen
  417.                                     SDL_RenderPresent( gRenderer );
  418.  
  419.                                     //Go to next frame
  420.                                     //++frame;
  421.  
  422.                                     //Cycle animation
  423.                                     if( frame / 5 >= 7 )
  424.                                     {
  425.                                         frame = 0;
  426.                                         //SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  427.                                         //SDL_RenderClear( gRenderer );
  428.  
  429.                                     }
  430.                                     SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  431.                                     SDL_RenderClear( gRenderer );
  432.                                 }
  433.                             }
  434.                         }
  435.  
  436.                         /*else if(ypos<451&&velY==0.0)
  437.                         {
  438.                             while(ypos<451)
  439.                             {
  440.                                 if(flipflag ==0)
  441.                                 {
  442.                                     flipType = SDL_FLIP_NONE;
  443.                                 }
  444.                                 else flipType = SDL_FLIP_HORIZONTAL;
  445.                                
  446.                                     //Render current frame
  447.                                     SDL_Rect* currentClip = &gSpriteJump[ 1 ];
  448.                                     gSpriteJumpTexture.render( ( xpos - currentClip->w ) / 2, ( ypos - currentClip->h ) / 2, currentClip , 0, NULL, flipType );
  449.                                     //y -= 5;
  450.  
  451.                                     //Update screen
  452.                                     SDL_RenderPresent( gRenderer );
  453.  
  454.                                     //Go to next frame
  455.                                     //++frame;
  456.  
  457.                                     //Cycle animation
  458.                                    
  459.                                     SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  460.                                     SDL_RenderClear( gRenderer );
  461.                                     xpos+=velX;
  462.                                     ypos+=velY;
  463.                                     velY+=0.4;
  464.                             }
  465.                             velY=0.0;
  466.                             ypos=450;
  467.                            
  468.                         }*/
  469.  
  470.                         else if(isAttacking == 1)
  471.                         {
  472.                             if(flipflag == 1)
  473.                             {
  474.                                 flipType = SDL_FLIP_HORIZONTAL;
  475.                                 //flipflag = 0;
  476.                             }
  477.                             else
  478.                                 flipType = SDL_FLIP_NONE;
  479.                             for(int frame=0;frame<35;frame++)
  480.                             {
  481.                                 //Render current frame
  482.                                 SDL_Rect* currentClip = &gSpriteClips[ frame /5  ];
  483.                                 gSpriteSheetTexture.render( ( xpos - currentClip->w ) / 2, ( ypos - currentClip->h ) / 2, currentClip , 0, NULL, flipType );
  484.  
  485.                                 //Update screen
  486.                                 SDL_RenderPresent( gRenderer );
  487.  
  488.                                 //Go to next frame
  489.                                 //++frame;
  490.  
  491.                                 //Cycle animation
  492.                                 if( frame / 5 >= 7 )
  493.                                 {
  494.                                     frame = 0;
  495.                                     //SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  496.                                     //SDL_RenderClear( gRenderer );
  497.  
  498.                                 }
  499.                                 SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  500.                                 SDL_RenderClear( gRenderer );
  501.                             }
  502.                         }
  503.                    
  504.  
  505.  
  506.                     else if(velX==0.0 && velY==0.0 )
  507.                     {
  508.                                 if(flipflag==0)
  509.                                 {
  510.                                     flipType = SDL_FLIP_NONE;
  511.                                 }
  512.                                 else flipType = SDL_FLIP_HORIZONTAL;
  513.                                 SDL_Rect* currentClip = &gSpriteWalk[ 0 ];
  514.                                 gSpriteWalkTexture.render( ( xpos - currentClip->w ) / 2, ( ypos - currentClip->h ) / 2, currentClip , 0, NULL, flipType );
  515.  
  516.                                 //Update screen
  517.                                 SDL_RenderPresent( gRenderer );
  518.                                 SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  519.                                 SDL_RenderClear( gRenderer );
  520.                     }
  521.                
  522.  
  523.                 //Clear screen
  524.             //  SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  525.             //  SDL_RenderClear( gRenderer );
  526.  
  527.            
  528. }
  529.  
  530. bool init()
  531. {
  532.     //Initialization flag
  533.     bool success = true;
  534.  
  535.     //Initialize SDL
  536.     if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
  537.     {
  538.         printf( "SDL could not initialize! SDL Error: %s\n", SDL_GetError() );
  539.         success = false;
  540.     }
  541.     else
  542.     {
  543.         //Set texture filtering to linear
  544.         if( !SDL_SetHint( SDL_HINT_RENDER_SCALE_QUALITY, "1" ) )
  545.         {
  546.             printf( "Warning: Linear texture filtering not enabled!" );
  547.         }
  548.  
  549.         //Create window
  550.         gWindow = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
  551.         if( gWindow == NULL )
  552.         {
  553.             printf( "Window could not be created! SDL Error: %s\n", SDL_GetError() );
  554.             success = false;
  555.         }
  556.         else
  557.         {
  558.             //Create vsynced renderer for window
  559.             gRenderer = SDL_CreateRenderer( gWindow, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC );
  560.             if( gRenderer == NULL )
  561.             {
  562.                 printf( "Renderer could not be created! SDL Error: %s\n", SDL_GetError() );
  563.                 success = false;
  564.             }
  565.             else
  566.             {
  567.                 //Initialize renderer color
  568.                 SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  569.  
  570.                 //Initialize PNG loading
  571.                 int imgFlags = IMG_INIT_PNG;
  572.                 if( !( IMG_Init( imgFlags ) & imgFlags ) )
  573.                 {
  574.                     printf( "SDL_image could not initialize! SDL_image Error: %s\n", IMG_GetError() );
  575.                     success = false;
  576.                 }
  577.             }
  578.         }
  579.     }
  580.  
  581.     return success;
  582. }
  583.  
  584. bool loadMedia()
  585. {
  586.     //Loading success flag
  587.     bool success = true;
  588.  
  589.     //Load sprite sheet texture
  590.     if( !gSpriteSheetTexture.loadFromFile( "Sword.png" ) )
  591.     {
  592.         printf( "Failed to load walking animation texture!\n" );
  593.         success = false;
  594.     }
  595.     else
  596.     {
  597.         //Set sprite clips
  598.         for(int i=0;i<7;i++)
  599.         {
  600.             gSpriteClips[ i ].x =   32*i;
  601.             gSpriteClips[ i ].y =   0;
  602.             gSpriteClips[ i ].w =  32;
  603.             gSpriteClips[ i ].h =  48;
  604.         }  
  605.     }
  606.     if( !gSpriteWalkTexture.loadFromFile( "walk.png" ) )
  607.     {
  608.         printf( "Failed to load walking animation texture!\n" );
  609.         success = false;
  610.     }
  611.     else
  612.     {
  613.         //Set sprite clips
  614.         for(int i=0;i<2;i++)
  615.         {
  616.             gSpriteWalk[ i ].x =   32*i;
  617.             gSpriteWalk[ i ].y =   0;
  618.             gSpriteWalk[ i ].w =  32;
  619.             gSpriteWalk[ i ].h =  48;
  620.         }  
  621.     }
  622.  
  623.  
  624.     if( !gSpriteJumpTexture.loadFromFile( "jump.png" ) )
  625.     {
  626.         printf( "Failed to load walking animation texture!\n" );
  627.         success = false;
  628.     }
  629.     else
  630.     {
  631.         //Set sprite clips
  632.         for(int i=0;i<2;i++)
  633.         {
  634.             gSpriteJump[ i ].x =   32*i;
  635.             gSpriteJump[ i ].y =   0;
  636.             gSpriteJump[ i ].w =  32;
  637.             gSpriteJump[ i ].h =  48;
  638.         }  
  639.     }
  640.  
  641.     return success;
  642. }
  643.  
  644. void close()
  645. {
  646.     //Free loaded images
  647.     gDotTexture.free();
  648.  
  649.     //Destroy window   
  650.     SDL_DestroyRenderer( gRenderer );
  651.     SDL_DestroyWindow( gWindow );
  652.     gWindow = NULL;
  653.     gRenderer = NULL;
  654.  
  655.     //Quit SDL subsystems
  656.     IMG_Quit();
  657.     SDL_Quit();
  658. }
  659.  
  660. int main( int argc, char* args[] )
  661. {
  662.     //Start up SDL and create window
  663.     if( !init() )
  664.     {
  665.         printf( "Failed to initialize!\n" );
  666.     }
  667.     else
  668.     {
  669.         //Load media
  670.         if( !loadMedia() )
  671.         {
  672.             printf( "Failed to load media!\n" );
  673.         }
  674.         else
  675.         {  
  676.             //Main loop flag
  677.             bool quit = false;
  678.  
  679.             //Event handler
  680.             SDL_Event e;
  681.  
  682.             //The dot that will be moving around on the screen
  683.             Player player;
  684.             player.init();
  685.  
  686.             //While application is running
  687.             while( !quit )
  688.             {
  689.                 //Handle events on queue
  690.                 while( SDL_PollEvent( &e ) != 0 )
  691.                 {
  692.                     //User requests quit
  693.                     if( e.type == SDL_QUIT )
  694.                     {
  695.                         quit = true;
  696.                     }
  697.  
  698.                     //Handle input for the dot
  699.                     player.handleEvent( e );
  700.                 }
  701.  
  702.                 //Move the dot
  703.                 //player.move();
  704.  
  705.                 //Clear screen
  706.                 //SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
  707.                 //SDL_RenderClear( gRenderer );
  708.  
  709.                 //Render objects
  710.                 player.render();
  711.  
  712.                 //Update screen
  713.                 //SDL_RenderPresent( gRenderer );
  714.             }
  715.         }
  716.     }
  717.  
  718.     //Free resources and close SDL
  719.     close();
  720.  
  721.     return 0;
  722. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement