projects
/
koperkapel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make roach pads slightly shorter
[koperkapel.git]
/
koperkapel
/
loaders
/
levelloader.py
diff --git
a/koperkapel/loaders/levelloader.py
b/koperkapel/loaders/levelloader.py
index 640d9b168ada4e59073559058cb8654d72492fb5..699b520c06884f3fd293212569aa8ca7dd99f0c4 100644
(file)
--- a/
koperkapel/loaders/levelloader.py
+++ b/
koperkapel/loaders/levelloader.py
@@
-1,10
+1,12
@@
"""Loader a level, using the pygame-zero ResourceLoader infrastructure"""
"""Loader a level, using the pygame-zero ResourceLoader infrastructure"""
+import os
import json
from pgzero.loaders import images, ResourceLoader
import os
import random
import json
from pgzero.loaders import images, ResourceLoader
import os
import random
+from pygame.transform import rotate
class Tile:
IMG = None
class Tile:
IMG = None
@@
-18,6
+20,7
@@
class Tile:
class RandomizedTile(Tile):
IMGDIR = None
class RandomizedTile(Tile):
IMGDIR = None
+ ROTATE = True
@classmethod
def image(cls):
@classmethod
def image(cls):
@@
-25,9
+28,13
@@
class RandomizedTile(Tile):
raise NotImplementedError()
imgdir = os.path.join(os.path.dirname(__file__), '..', 'images', cls.IMGDIR)
raise NotImplementedError()
imgdir = os.path.join(os.path.dirname(__file__), '..', 'images', cls.IMGDIR)
- img = os.path.splitext(random.choice(os.listdir(imgdir)))[0]
+ imgpath = os.path.splitext(random.choice(os.listdir(imgdir)))[0]
+ img = images.load(os.path.join(cls.IMGDIR, imgpath))
+
+ if cls.ROTATE:
+ img = rotate(img, 90 * random.randint(0, 3))
- return im
ages.load(os.path.join(cls.IMGDIR, img))
+ return im
g
class Floor(RandomizedTile):
IMGDIR = "floor"
class Floor(RandomizedTile):
IMGDIR = "floor"
@@
-53,6
+60,7
@@
class LevelLoader(ResourceLoader):
self._height = len(level_data['tiles'])
self._width = len(level_data['tiles'][0])
self._tiles = level_data['tiles']
self._height = len(level_data['tiles'])
self._width = len(level_data['tiles'][0])
self._tiles = level_data['tiles']
+ self._tileset = level_data['tileset']
# Consistency check, so we can assume things are correct
# in the level renderer
for row, row_data in enumerate(self._tiles):
# Consistency check, so we can assume things are correct
# in the level renderer
for row, row_data in enumerate(self._tiles):
@@
-65,7
+73,8
@@
class LevelLoader(ResourceLoader):
"""Load all the tile images"""
for row_data in self._tiles:
for tile in row_data:
"""Load all the tile images"""
for row_data in self._tiles:
for tile in row_data:
- tile['image'] = TILES[tile['base']].image()
+ for layer in ['floor', 'tunnels']:
+ tile['%s image' % layer] = TILES[tile[layer]['base']].image()
levels = LevelLoader('levels')
levels = LevelLoader('levels')