All pastes #990010 Raw Edit

Mine

public text v1 · immutable
#990010 ·published 2008-04-19 22:41 UTC
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;
                }
            }
        }
}