import pygame from display import Display from status import Status from player import Player from field import Field from enemies import Enemies from stats import Stats from .gameplay import Gameplay class Level: """ One level that can be played """ def __init__(self, display = None): self.display = display self.status = Status() self.field = Field() self.enemies = Enemies() self.player = Player() self.gameplay = Gameplay( player = self.player, status = self.status, field = self.field, enemies = self.enemies) self.obj_classes = ( self.status, self.field, self.enemies, self.player) def step(self, dt): for obj in self.obj_classes: obj.update(dt = dt) self.enemies.hit_walls(self.field.active_sprites()) Stats.update_bonus(dt) self.display.update( ( self.status, self.field, self.enemies, pygame.sprite.GroupSingle( sprite = self.player.get_top_sprite()))) if self.gameplay.step(): return False return True