void gameUpdate() { int i; for(i=0;i<MAXGOOD;i++) { good[i].update(1); } for(i=0;i<MAXBAD;i++) { bad[i].update(0); } for(i=0;i<MAXGOOD;i++) { good[i].init(1); } for(i=0;i<MAXBAD;i++) { bad[i].init(0); } scoreUpdate(); }
void pawnupdate(int x,int y) { pawn.setPos((x*WIDTH/scrwidth),((scrheight-y)*HEIGHT)/scrheight); scoreUpdate(); glutPostRedisplay(); }
void Game::update() { sf::Time tempTime = clock.restart(); float elapsedTime = tempTime.asSeconds(); ship->move(elapsedTime); particleSystem->update(elapsedTime); for (std::vector<Asteroid*>::iterator i = asteroidVector.begin(); i != asteroidVector.end(); ++i) { (*i)->move(elapsedTime); } for (std::vector<SmallAsteroid*>::iterator i = smAsteroidVector.begin(); i != smAsteroidVector.end(); ++i) { (*i)->move(elapsedTime); } for (int i = 0; i < MAX_BULLETS; ++i) { if (bullet[i] != nullptr) { bullet[i]->move(elapsedTime); if (bullet[i]->dist()) { bullet[i] = nullptr; } } } for (unsigned int i = 0; i < asteroidVector.size(); ++i) { if (ship->collision(asteroidVector[i])) { int myRand = rand() % 100 + 1; if (myRand <= 30 && myRand >= 1) { for (int k = 1; k < 4; ++k) { std::string spritefile = "Images/Small"; spritefile = spritefile + std::to_string(k) + ".png"; SmallAsteroid* smAsteroid = new SmallAsteroid(spritefile, asteroidVector[i]->getPos(), k, win); smAsteroidVector.push_back(smAsteroid); } } for (int j = 0; j < 10; ++j) { particleSystem->addParticle(asteroidVector[i]->getPos(), asteroidVector[i]->getVel(), 1); } ship->collide(); asteroidExplosion.play(); asteroidVector[i] = nullptr; asteroidVector.erase(asteroidVector.begin() + i); } } for (unsigned int i = 0; i < smAsteroidVector.size(); ++i) { if (ship->smCollision(smAsteroidVector[i])) { for (int j = 0; j < 10; ++j) { particleSystem->addParticle(smAsteroidVector[i]->getPos(), smAsteroidVector[i]->getVel(), 1); } ship->collide(); asteroidExplosion.play(); smAsteroidVector[i] = nullptr; smAsteroidVector.erase(smAsteroidVector.begin() + i); } } for (unsigned int i = 0; i < smAsteroidVector.size(); ++i) { if (smAsteroidVector[i]->edge(smAsteroidVector[i])) { smAsteroidVector[i] = nullptr; smAsteroidVector.erase(smAsteroidVector.begin() + i); } } for (int i = 0; i < MAX_BULLETS; ++i) { for (unsigned int j = 0; j < asteroidVector.size(); ++j) { if (bullet[i] != nullptr && asteroidVector.at(j) != nullptr) { if (bullet[i]->collision(asteroidVector.at(j))) { int myRand = rand() % 100 + 1; if (myRand <= 30 && myRand >= 1) { for (int k = 1; k < 4; ++k) { std::string spritefile = "Images/Small"; spritefile = spritefile + std::to_string(k) + ".png"; SmallAsteroid* smAsteroid = new SmallAsteroid(spritefile, asteroidVector[j]->getPos(), k, win); smAsteroidVector.push_back(smAsteroid); } } for (int l = 0; l < 10; ++l) { particleSystem->addParticle(asteroidVector[j]->getPos(), asteroidVector[j]->getVel(), 1); } asteroidExplosion.play(); bullet[i] = nullptr; asteroidVector[j] = nullptr; asteroidVector.erase(asteroidVector.begin() + j); score += 100; } } } for (unsigned int j = 0; j < smAsteroidVector.size(); ++j) { if (bullet[i] != nullptr && smAsteroidVector.at(j) != nullptr) { if (bullet[i]->smCollision(smAsteroidVector.at(j))) { for (int i = 0; i < 10; ++i) { particleSystem->addParticle(smAsteroidVector[j]->getPos(), smAsteroidVector[j]->getVel(), 1); } asteroidExplosion.play(); bullet[i] = nullptr; smAsteroidVector[j] = nullptr; smAsteroidVector.erase(smAsteroidVector.begin() + j); score += 50; } } } } if (ship->dead()) { scoreUpdate(win); } if (asteroidVector.empty() && !ship->dead() && smAsteroidVector.empty()) { levelMenu = true; level += 1; build(level); } }