def update(self):
"""Update all owned objects (blocks, player, enemies, etc)"""
if self.player.at_top:
self.level_timer.stop()
# Check for a reset flag set on the player object
if self.player.won_level:
self.player.reset()
self.enemies.empty()
gf.generate_new_random_blob(self.settings, self.screen, self.settings.image_res.enemy_blob_images, self)
self.generate_platforms()
self.blob_exit.stop_gibbing()
self.level_info.increase_level()
self.settings.enemy_generation_rate -= self.settings.enemy_generation_level_rate
self.level_timer.reset()
# Update the player
self.player.update(self, self.enemies)
# Check if it's time to add a new enemy to the map
self.new_enemy_counter += 1
if self.new_enemy_counter >= self.settings.enemy_generation_rate:
self.new_enemy_counter = 0
gf.generate_new_random_blob(self.settings, self.screen, self.settings.image_res.enemy_blob_images, self)
# Update enemies that exist
for enemy in self.enemies:
enemy.update(self)
# Update the 'exit' sprite
self.blob_exit.update(self.enemies)
# Update the level info
self.level_info.update()
# Update the level timer
self.level_timer.update()
# bonuses
for bonus in self.bonuses:
bonus.update()
if not bonus.alive():
self.bonuses.remove(bonus)
评论列表
文章目录