rendered paste body
class Game{
public:
void InitResources();
void TitleMenu();
void GameLoop();
void HandleInput();
void EndGame();
void CleanUp();
void GameState(int option);
void StartGame();
SDL_Surface *message;
SDL_Surface *background;
SDL_Surface *testText;
SDL_Rect clip[1];
void GameUpdate();
TTF_Font *font;
bool GameRunning;
bool GameTitle;
};
////////////////////////////////////////////
class Input: public Game{
public:
void HandleInput();
SDL_Event event;
friend class Game;
};
//////////////////////base clases
void Game::InitResources(){
message = load_Image("spritetest.png");
font = loadfont("basic.ttf",12);
testText = Displaytext(font,"test",255,255,255);
clip[0].x = 0;
clip[0].y = 0;
clip[0].w = 30;
clip[0].h = 45;
}
void Game::StartGame(){
GameState(GAMETITLE);
}
void Game::GameState(int option){
switch (option){
case 1 : TitleMenu(); break;
case 2 : GameLoop(); break;
case 3 : EndGame(); break;
}
}
void Game::TitleMenu(){
while(GameTitle == true){
apply_surface(0,0,testText,screen);
apply_surface(20,20,message,screen, &clip[0]);
GameUpdate();
}
GameState(GAMESTART);
}
void Game::GameLoop(){
while(GameRunning == true){
GameUpdate();
}
GameState(GAMEEND);
}
void Game::EndGame(){
CleanUp();
}
void Game::GameUpdate(){
SDL_Flip(screen);
IncFrameV();
FrameSync();
HandleInput();
fps.Start();
}
void Game::CleanUp(){
SDL_FreeSurface(message);
SDL_FreeSurface(background);
SDL_Quit();
}
//////////////////
void Input::HandleInput(){
if(SDL_PollEvent(&event)){
if(event.type == SDL_KEYDOWN){
switch (event.key.keysym.sym){
case SDLK_ESCAPE: Game::GameState(GAMEEND);break;
}
}
}
}