@@ -50,6 +50,7 @@ Game* Game::getInstance() {
5050
5151Game::Game (int initial_pos_x, int initial_pos_y) :
5252 nrOfStars(Constants::nrOfStars),
53+ score(0 ),
5354 width(Constants::maxX),
5455 height(Constants::maxY),
5556 maxX(Constants::maxX),
@@ -241,10 +242,13 @@ void Game::RenderFunction(void) {
241242 glBindVertexArray (asteroidVao);
242243 glDrawArrays (GL_POLYGON, 0 , Constants::nrOfVerticesPerCircle);
243244 }
245+
244246 glDisable (GL_TEXTURE_2D);
245247 glUseProgram (ProgramId);
246248 myMatrixLocation = glGetUniformLocation (ProgramId, " myMatrix" );
249+
247250 Game::UpdateBullets ();
251+
248252 for (auto & bullet : bullets) {
249253 glm::mat4 bulletMatrix = glm::scale (glm::mat4 (1 .0f ), glm::vec3 (bullet->getRadius (), bullet->getRadius (), 1 .0f ));
250254 glm::mat4 animateMatrix = glm::translate (glm::mat4 (1 .0f ), glm::vec3 (0.0 , bullet->getY (), 0.0 ));
@@ -586,8 +590,7 @@ double distance(glm::vec4 p1, glm::vec4 p2) {
586590}
587591
588592void Game::BulletAsteroidCollision () {
589- vector<int > eraseAsteroids;
590- vector<int > eraseBullets;
593+
591594 for (int i = 0 ; i < int (bullets.size ()); i++) {
592595 for (int j = 0 ; j < int (asteroids.size ()); j++) {
593596 glm::vec4 currentBulletCenter = bullets[i]->bulletMatrix * Bullet::bulletCenter;
@@ -602,6 +605,7 @@ void Game::BulletAsteroidCollision() {
602605 if (distance (currentAsteroidCenter, currentBulletCenter) < currentBulletRadius + currentAsteroidRadius) {
603606 bullets[i]->setToBeDeleted (true );
604607 asteroids[j]->setToBeDeleted (true );
608+ score++;
605609 }
606610 }
607611 }
0 commit comments