Beispiel #1
0
void WaveManager::Update(const Time& tiElapsed)
{
    if(state != Wave::State::Finished)
    {
        // Si no quedan enemigos, se pasa al estado de cargar
        if(WorldState::Instance()->vEnemies->empty() && state == Wave::State::Waiting)
            state = Wave::State::Loading;

        // Se cuenta el tiempo, excepto cuando se está en espera
        if(state != Wave::State::Waiting)
            *timeElapsed += tiElapsed;

        if(state == Wave::State::Loading) // Estado de espera a comenzar a insertar la oleada 
        {
            if(!cambiado){
                waveCounter++;
                StatusManager::Instance()->IncrementInt(Parameters::countingWaves, 1);
                cambiado = true;
            }
            
            if(timeElapsed->AsSeconds() >= timeInBetweenWaves->AsSeconds())
            {
                cambiado = false;
                timeElapsed->SetSeconds(0.f);
                state = Wave::State::Running;
                InsertEnemy();
            }
        }
        else if(state == Wave::State::Running) // Estado de inserción de oleada 
        {
            if(timeElapsed->AsSeconds() >= timeInBetweenEnemies->AsSeconds())
            {
                *timeElapsed -= *timeInBetweenEnemies;
                InsertEnemy();
            }
        }
    }
    
    /*
    if(state == Wave::State::Running)    std::cout << "State: Running" << std::endl;
    else if(state == Wave::State::Waiting)    std::cout << "State: Waiting" << std::endl;
    else if(state == Wave::State::Loading)    std::cout << "State: Loading" << std::endl;
    else if(state == Wave::State::Finished)    std::cout << "State: Finished" << std::endl; */
}
void MergeHeaps(Heap * &H1, Heap * &H2, int &N1 ,int &N2, int Region)
{
	int NewSize = N1 + N2;
	N1 = 0;
	N2 = NewSize;
	Heap *NewHeap = CreateHeap(NewSize);
	while (H1->Count>0)
	{
		Enemy *Temp = RemoveEnemy(H1);
		Temp->Region = Region;
		InsertEnemy(NewHeap, Temp);
	}
	while (H2->Count>0)
	{
		Enemy *Temp = RemoveEnemy(H2);
		InsertEnemy(NewHeap, Temp);
	}
	delete H2->HeapE;
	delete H2;
	H2 = NewHeap;
}