#include "game.hpp" #include "state/commands.hpp" #include "util.hpp" #include Game::Game() { // advance simulation with 100 Hz m_time_step = 1.0 / 100.0; m_time_for_next_step = 0.0; m_state = new game::State(); m_state->init(); m_state->addPlayer(0); m_state->addPlayer(1); m_state->addPlayer(2); m_state->addPlayer(3); //m_state->addPlayer(2); } bool Game::cycle(float dt) { static float total = 0.0; static float acc = 0.0; //if (total == 0.0) { // float speed = 0.005; // m_state->players[0]->addCommand(new game::SetSpeedCommand(speed)); // for (int i=0; i<100; i++) { // float a = 2.0 * M_PI * util::randf_0_1(); // m_state->players[0]->addCommand(new game::ShootCommand(a)); // } //} acc += dt; total += dt; float spawnInterval = 0.1; while(acc > spawnInterval) { acc -= spawnInterval; float a = 2.0 * M_PI * util::randf_0_1(); float speed = 0.005; m_state->players[0]->addCommand(new game::SetSpeedCommand(speed)); m_state->players[0]->addCommand(new game::ShootCommand(a)); //static bool done = false; //if (total >= 10.0 && !done) { // done = true; // m_state->players[0]->addCommand(new game::ClearTracesCommand()); //} } //std::cout<<"adding dt: " << dt << std::endl; m_time_for_next_step += dt; int steps = 0; while(m_time_for_next_step >= m_time_step) { //std::cout<<"time now: " << m_time_for_next_step << std::endl; m_time_for_next_step -= m_time_step; m_state->advance(m_time_step); steps++; } //std::cout << m_time_for_next_step << " s remaining time, " << steps << " steps taken." << std::endl; return true; }