+"""Loader a level, using the pygame-zero ResourceLoader infrastructure"""
+
+import json
+
+from pgzero.loaders import images, ResourceLoader
+
+
+class LevelLoader(ResourceLoader):
+ """ Level loader. """
+
+ EXTNS = ['json']
+ TYPE = 'level'
+
+ def _load(self, level_path):
+ f = open(level_path, 'r')
+ level_data = json.load(f)
+ f.close()
+ self._tiles = level_data['tiles']
+ self._load_tile_images()
+ return level_data
+
+ def _load_tile_images(self):
+ """Load all the tile images"""
+ for tile in self._tiles:
+ tile['image'] = images.load(tile['base'])
+
+
+levels = LevelLoader('levels')