Exemple #1
0
void Game::gameLoop()
{
	sf::Clock clock;
	while (window.isOpen())
	{
		sf::Time elapsed = clock.restart();
		float dt = elapsed.asSeconds();

		if (peekState() == nullptr)
		{
			continue;
		}
		while (window.pollEvent(event))
		{
			if (event.type == sf::Event::Closed)
			{
				window.close();
			}
			peekState()->handleInput();
		}
		peekState()->update(dt);
		window.clear(sf::Color(200, 210, 255, 255));
		peekState()->draw(dt);
		window.display();
	}
}
Exemple #2
0
void App::appLoop() {
    sf::Clock clock;
    
    while(this->window.isOpen()) {

        sf::Time elapsed = clock.restart();
        float dt = elapsed.asSeconds();
        
        if(peekState() == nullptr) continue;
        peekState()->handleInput();
        peekState()->update(dt);
        peekState()->draw(dt);
    }
}
Exemple #3
0
void	Game::draw()
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  _shader.bind();
  peekState()->draw(_clock, _shader);
  _context.flush();
}
GameState *StateManager::popState() {

    GameState *state = peekState();
    states.pop();
    return state;

}
Exemple #5
0
void Game::gameLoop()
{
    sf::Clock clock;

    while(this->window.isOpen())
    {
        sf::Time elapsed = clock.restart();
        float dt = elapsed.asSeconds();

        if(peekState() == nullptr) continue;
        peekState()->handleInput();
        peekState()->update(dt);
        this->window.clear(sf::Color::Black);
        peekState()->draw(dt);
        this->window.display();
    }
}
Exemple #6
0
void GameEngine::changeState(GameState* state)
{
    if (!states.empty()) {
        popState();
    }

    pushState(state);

    peekState()->Init(this);
}
Exemple #7
0
void GameEngine::pushState(GameState* state)
{
    if (!states.empty()) {
        states.top()->Pause();
    }

    states.push(state);

    peekState()->Init(this);
}
Exemple #8
0
bool	Game::update()
{
  if (_input.getKey(SDLK_ESCAPE) || _input.getInput(SDL_QUIT))
    return false;
  // Mise a jour des inputs et de l'horloge de jeu
  _context.updateClock(_clock);
  _context.updateInputs(_input);
  if(peekState()->update(_clock, _input) == false)
    return false;
  return true;
}