The update
function for Inverse Universe will be similar to most other games where we update all the game elements and check for collisions. The code looks like this:
void GameWorld::update(float dt) { // don't process if player is dying if(player_->is_dying_) return; // update each enemy CCObject* object = NULL; CCARRAY_FOREACH(enemies_, object) { Enemy* enemy = (Enemy*)object; if(enemy) { enemy->Update(player_->getPosition(), player_->GetShield() == NULL); } } // update each power-up object = NULL; CCARRAY_FOREACH(powerups_, object) { PowerUp* powerup = (PowerUp*)object; if(powerup) { powerup->Update(); } } CheckCollisions(); CheckRemovals(); }
We skip processing anything if the player's death animation is playing. We then iterate over the enemies_
and powerups_
arrays and update each object they contain. Finally, we check for collisions and for objects that must be removed. We will...