AddPowerup - Inf512-MotorolaScienceCup/gra-PANG GitHub Wiki
AddPowerup
Funkcja dodająca losowy Powerup. Nie jest on jednak zawsze dodawany, a szansę na jego dodanie ustalana jest w zmiennej chance.
void Game::AddPowerup(float x, float y) {
if (modNum == 1) return;
SetRandomSeed(time(nullptr));
int chance = GetRandomValue(1, 3);
if (chance == 1) {
int kindNum;
if (modNum != 3) {
if (weaponType == 2)
kindNum = GetRandomValue(2, 4);
else
kindNum = GetRandomValue(1, 4);
} else {
if (weaponType == 2)
kindNum = GetRandomValue(2, 5);
else
kindNum = GetRandomValue(1, 5);
}
Sprite* s;
switch (kindNum) {
case 1:
s = new Powerup(this, x, y, Powerup::Kind::DOUBLE);
spriteMap[Sprite::Type::POWERUP].push_back(s);
sprites.push_back(s);
break;
case 2:
s = new Powerup(this, x, y, Powerup::Kind::BOOST);
spriteMap[Sprite::Type::POWERUP].push_back(s);
sprites.push_back(s);
break;
case 3:
s = new Powerup(this, x, y, Powerup::Kind::TIME);
spriteMap[Sprite::Type::POWERUP].push_back(s);
sprites.push_back(s);
break;
case 4:
s = new Powerup(this, x, y, Powerup::Kind::WEAPON);
spriteMap[Sprite::Type::POWERUP].push_back(s);
sprites.push_back(s);
break;
case 5:
s = new Powerup(this, x, y, Powerup::Kind::SCORE);
spriteMap[Sprite::Type::POWERUP].push_back(s);
sprites.push_back(s);
}
}
}