ゲーム制作始めたい Hello SDL

このサイトがよくまとまってるのでありがたい!

tmick.net

ちょっとアレンジして60fpsでwindowの色がランダムに変わるようにした

//Using SDL and standard IO
#include <SDL2/SDL.h>
#include <stdio.h>
#include <random>

//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

int main(int argc, char* args[]) {
  //The window we'll be rendering to
  SDL_Window* window = NULL;
  
  //The surface contained by the window
  SDL_Surface* screenSurface = NULL;

  //Initialize SDL
  if(SDL_Init( SDL_INIT_VIDEO ) < 0){
    printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
  } else {
    //Create window
    window = SDL_CreateWindow("SDL Tutorial: 60 FPS random color", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
    if(window == NULL) {
      printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
    } else {
      //Get window surface
      screenSurface = SDL_GetWindowSurface(window);

      std::random_device rnd;

      for (int i = 0; i < 1000; i++) {

        int R = rnd() % 256;
        int G = rnd() % 256;
        int B = rnd() % 256;

        //Fill the surface white
        SDL_FillRect(screenSurface, NULL, SDL_MapRGB( screenSurface->format, R, G, B));
            
        //Update the surface
        SDL_UpdateWindowSurface(window);

        //Wait two seconds
        SDL_Delay(1000.0/60);
      }
    }
  }

  //Destroy window
  SDL_DestroyWindow(window);

  //Quit SDL subsystems
  SDL_Quit();

  return 0;
}