示例#1
0
int main( int argc, char* args[] ) {
  //Start up SDL and create window
  if( !init() ) {
    printf( "Failed to initialize!\n" );
  } else {
    //Load media
    if( !loadMedia() ) {
      printf( "Failed to load media!\n" );
    } else {
      //Main loop flag
      bool quit = false;

      //Event handler
      SDL_Event e;

      //The dot that will be moving around on the screen
      Dot dot( 0, 0 );

      //The dot that will be collided against
      Dot otherDot( SCREEN_WIDTH / 4, SCREEN_HEIGHT / 4 );

      //While application is running
      while( !quit ) {
        //Handle events on queue
        while( SDL_PollEvent( &e ) != 0 ) {
          //User requests quit
          if( e.type == SDL_QUIT ) {
            quit = true;
          }

          //Handle input for the dot
          dot.handleEvent( e );
        }

        //Move the dot and check collision
        dot.move( otherDot.getColliders() );

        //Clear screen
        SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF );
        SDL_RenderClear( gRenderer );

        //Render dots
        dot.render();
        otherDot.render();

        //Update screen
        SDL_RenderPresent( gRenderer );
      }
    }
  }

  //Free resources and close SDL
  close();

  return 0;
}
示例#2
0
文件: main.cpp 项目: Mattowy/SDL-3.0
int main(int argc, char* args[])
{
	//Start up SDL and create window

	if (!init()){
		printf("Failed to initialize! \n");
	}
	else{
		//Load media
		if (!loadMedia()){
			printf("Failed to load media! \n");
		}
		else

		{
			//main loop flag
			bool quit = false;

			//Event handler
			SDL_Event e;

			//Dot that will be movind around on the screen
			Dot dot(Dot::DOT_WIDTH / 2, Dot::DOT_HEIGHT / 2);

			//The dot that will be collided against
			Dot otherDot(SCREEN_WIDTH *3 / 4, SCREEN_HEIGHT / 4);

			//Wall definition
			SDL_Rect wall = { 300, 40, 40, 400 };

			while (!quit)
			{
				while (SDL_PollEvent(&e) != 0)
				{
					//User request quit
					if (e.type == SDL_QUIT){
						quit = true;
					}

					if (e.type == SDL_KEYDOWN)
					{
						if (e.key.keysym.sym == SDLK_ESCAPE)
							quit = true;
					}
					dot.handleEvent(e);
				}
				//move dot and check collision
				dot.move(wall, otherDot.getCollider(), &checkCollision, &checkCollision);

				//Clear screen
				SDL_SetRenderDrawColor(gRenderer, 0xFF, 0xFF, 0xFF, 0xFF);
				SDL_RenderClear(gRenderer);

				//Draw wall
				SDL_SetRenderDrawColor(gRenderer, 0, 0, 0, 0xFF);
				SDL_RenderDrawRect(gRenderer, &wall);

				//Render objects
				otherDot.render(&gDotTexture, gRenderer);
				dot.render(&gDotTexture, gRenderer);
				//Update screen
				SDL_RenderPresent(gRenderer);
			}
		}
	}
	close();
	return 0;
}