//Using SDL, SDL_image, SDL_ttf, standard IO, strings, and string streams
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>
#include <stdio.h>
#include <string>
#include <sstream>
Before enter the main loop to declare some variables. pay attention to is the startTime variable (which is an Unsigned integer that's 32bits) and the timeText variable which is a string stream.
//Main loop flag
bool quit = false;
//Event handler
SDL_Event e;
//Set text color as black
SDL_Color textColor = { 0, 0, 0, 255 };
//Current time start time
Uint32 startTime = 0;
//In memory text stream
std::stringstream timeText;
There's a function called SDL_GetTicks which returns the time since the program started in milliseconds. For this demo, be having a timer that restarts every time press the return key.
//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;
}
//Reset start time on return keypress
else if( e.type == SDL_KEYDOWN && e.key.keysym.sym == SDLK_RETURN )
{
startTime = SDL_GetTicks();
}
}
using our string stream. First call str with an empty string to initialize it to be empty. Then treat it like cout and print to it "Milliseconds since start time " and the current time minus the relative start time so it will print the time since last started the timer.
//Set text to be rendered
timeText.str( "" );
timeText << "Milliseconds since start time " << SDL_GetTicks() - startTime;
Tidak ada komentar:
Posting Komentar