Witam! mam sobie grę o zombiakach, i pętlę która wykonuje resp przeciwników, zmienne umieściłem w klasie Player,
int Wave = 1;
int zombieInWave = 10;
int ZombieLeft = zombieInWave;
int ZOMBIE = 15;
zombieInWave odpowiada ilością zombie w danej fali, np. jeżeli Wave == 5, wtedy mechanizm mnoży zombieInWave*Wave, więc co fale jest ich więcej, przy zabiciu jednego zombiaka, dekrementuje ZombieLeft która wynosi tyle samo co zombieInWave, if sprawdza czy ZombieLeft nie wynosi 0, jeżeli tak to zwiększ fale i resztę(załączam kod), w sumie to wszystko działa tak jak należy, po 5 fali zombie mają się respić w miejscu podstawowym, i innym na mapie, wszystko okej, do rundy 7, nie mam pojęcia dlaczego, gra poprostu gdy osiągnie Wave == 7, respi zombie milion tak jakby początkowy while nie działał, i to crashuje grę, ktoś ma podejrzenia o co chodzi? (jeszcze raz, ZombieLeft-- następuje przy zabiciu zombiaka).
grę obiecałem koledze na jego urodziny które są jutro, więc nie chciałbym tego spaprać(Gdyby kogoś to interesowało, respy maja być podobne jak w Call od Duty: Black Ops Zombies)
while (Player1.zombieInWave != 0)
{
enemy1.rect.setPosition(450, 2200);
enemyArray.push_back(enemy1);
if (Player1.Wave > 5)
{
enemy1.rect.setPosition(1200,1450);
enemyArray.push_back(enemy1);
Player1.zombieInWave--;
}
if (Player1.Wave > 10)
{
enemy1.rect.setPosition(1200, 1450);
enemyArray.push_back(enemy1);
Player1.zombieInWave--;
//&&
enemy1.rect.setPosition(1850, 1950);
enemyArray.push_back(enemy1);
Player1.zombieInWave--;
}
if (Player1.Wave > 15)
{
enemy1.rect.setPosition(1200, 1450);
enemyArray.push_back(enemy1);
Player1.zombieInWave--;
//&&
enemy1.rect.setPosition(1850, 1950);
enemyArray.push_back(enemy1);
Player1.zombieInWave--;
//&&
enemy1.rect.setPosition(1000, 800);
enemyArray.push_back(enemy1);
Player1.zombieInWave--;
}
Player1.zombieInWave--;
cout << "Spawn?" << endl;
}
if (Player1.ZombieLeft == 0) {
Player1.Wave++;
if (Player1.Wave >= 11) {
enemyArray[counter].hp = enemyArray[counter].hp * 1.1;
}
Player1.zombieInWave = Player1.ZOMBIE * Player1.Wave;
Player1.ZombieLeft = Player1.zombieInWave;
}