def update(self):
        self.running = True
        self.player.update()
        if self.player.health <= 0:
            for entity in self.npcEntities:
                self.npcEntities.remove(entity)
        self.background.paraX = self.player.xVelocity * Settings.starParallaxX
        self.background.paraY = self.player.yVelocity * Settings.starParallaxY
        self.background.update()

        for entity in self.npcEntities:
            if entity.update():
                explosion = Explosion(self, entity.xPosition, entity.yPosition)
                explosion.sprite = pygame.image.load("../assets/explosion.png")
                explosion.setSprite(explosion.sprite)
                self.npcEntities.append(explosion)
                self.npcEntities.remove(entity)

        for entity in self.playerProjectileEntities:
            if entity.update():
                self.playerProjectileEntities.remove(entity)
        for entity in self.npcProjectileEntities:
            if entity.update():
                self.npcProjectileEntities.remove(entity)

        if self.exitTimer < 0 and len(self.npcEntities) == 0:
            self.exitTimer = 10

        if self.exitTimer > 0:
            self.exitTimer -= 1
        elif self.exitTimer == 0:
            self.running = False
            self.exitTimer = -1

        return self.running