def create_level(self): blockImage = ASSET.blockImage for block in self.blocks: if block[2] != 0: levelBlock = PhysicsBody(0, 0, self.data.tilewidth, self.data.tileheight, blockImage) levelBlock.image = levelBlock.image.convert_alpha() levelBlock.rect.x = self.data.tilewidth * block[0] levelBlock.rect.y = self.data.tileheight * block[1] self.player1.collision_group.add(levelBlock) self.player2.collision_group.add(levelBlock) self.display_group.add(levelBlock) self.block_group.add(levelBlock) for dataorb in self.datafragments: self.fragmentWidth = dataorb.width self.fragmentHeight = dataorb.height for vport in self.dataspawner: io_port = PhysicsBody(vport.x, vport.y, vport.width, vport.height, ASSET.ioInImage) io_port.hspeed = 4 self.dataspawner_group.add(io_port) self.display_group.add(io_port) self.fragmentSpawnPos = [vport.x + vport.width/2, vport.y + vport.height] for port in self.portals: portal_base = PhysicsBody(port.x, port.y, port.width, port.height, ASSET.portal_base, "left") if portal_base.rect.centerx < SCREEN.width/2: portal = PhysicsBody(0, 0, 60, 55, ASSET.p1_portal, "left") else: portal = PhysicsBody(0, 0, 60, 55, ASSET.p2_portal, "left") portal.rect.centerx = portal_base.rect.centerx portal.rect.bottom = portal_base.rect.top self.portals_group.add(portal_base) self.display_group.add(portal_base) self.display_group.add(portal) for bound in self.bounds: saw_bound = PhysicsBody(bound.x, bound.y, bound.width, bound.height, blockImage) self.bounds_group.add(saw_bound) for saw in self.saws: sawblade = Saw(saw.x, saw.y, saw.width, saw.height, ASSET.sawFrames) sawblade.bounds = self.bounds_group.copy() self.saw_group.add(sawblade) self.display_group.add(sawblade) tempgroup = self.display_group.copy() self.display_group.empty() self.display_group.add(sawblade) self.display_group.add(tempgroup) self.player1.danger_group.add(self.saw_group) self.player2.danger_group.add(self.saw_group) for fragment in self.datafragment_group: fragment.killer_group = self.enemy_group.copy() fragment.storage_group.add(self.portals_group) fragment.collision_group.add(self.dataspawner_group) fragment.killer_group.add(self.saw_group) self.player1.collision_group.add(self.portals_group) self.player2.collision_group.add(self.portals_group) self.player_group.add(self.player1) self.player_group.add(self.player1.label) self.player_group.add(self.player1.glow) self.player_group.add(self.player2) self.player_group.add(self.player2.label) self.player_group.add(self.player2.glow)