Added well and compactified level1.
This commit is contained in:
parent
eee3dc7920
commit
a49c3135c4
|
@ -208,18 +208,22 @@ class ActionBlock(Block):
|
||||||
worldobject.WorldObject.update(self, e, t, dt)
|
worldobject.WorldObject.update(self, e, t, dt)
|
||||||
|
|
||||||
class ColorWell(Block):
|
class ColorWell(Block):
|
||||||
def __init__(self, level, x, y):
|
def __init__(self, level, x, y, img_str='well'):
|
||||||
self.__dict__.update(locals())
|
self.__dict__.update(locals())
|
||||||
worldobject.WorldObject.__init__(
|
worldobject.WorldObject.__init__(
|
||||||
self, level, x, y, movable=False)
|
self, level, x, y, movable=False)
|
||||||
self.img = pygame.Surface((64, 64))
|
|
||||||
|
Block.load(self)
|
||||||
|
|
||||||
|
self.col_img = pygame.Surface((32, 32))
|
||||||
|
|
||||||
def set_colour(self, r, g, b):
|
def set_colour(self, r, g, b):
|
||||||
self.well_colour = r * 255, g * 255, b * 255
|
self.well_colour = r * 255, g * 255, b * 255
|
||||||
self.img.fill(self.well_colour)
|
self.col_img.fill(self.well_colour)
|
||||||
|
|
||||||
def draw(self, window):
|
def draw(self, window):
|
||||||
if self.visible:
|
if self.visible:
|
||||||
window.blit(self.img, (self.x - self.level.camera_x,
|
window.blit(self.col_img, (self.x - self.level.camera_x + 16,
|
||||||
self.y - self.img.get_size()[1]
|
self.y - self.img.get_size()[1] + 52
|
||||||
- self.level.camera_y))
|
- self.level.camera_y))
|
||||||
|
Block.draw(self, window)
|
||||||
|
|
|
@ -120,69 +120,69 @@ class Level1(level.Level):
|
||||||
anim='lever_updown'))
|
anim='lever_updown'))
|
||||||
# Moat sides
|
# Moat sides
|
||||||
for i in range(-1, task2_size[1]):
|
for i in range(-1, task2_size[1]):
|
||||||
self.add_moat(task2_pos[0] - 64,
|
self.add_tile(task2_pos[0] - 64,
|
||||||
task2_pos[1] + 48 * i,
|
task2_pos[1] + 48 * i,
|
||||||
'moat_vertical')
|
'moat_vertical')
|
||||||
for i in range(task2_size[1] - 2):
|
for i in range(task2_size[1] - 2):
|
||||||
self.add_moat(task2_pos[0] + 64 * task2_size[0],
|
self.add_tile(task2_pos[0] + 64 * task2_size[0],
|
||||||
task2_pos[1] + 48 * i,
|
task2_pos[1] + 48 * i,
|
||||||
'moat_vertical')
|
'moat_vertical')
|
||||||
for i in range(6, task2_size[0]):
|
for i in range(6, task2_size[0]):
|
||||||
self.add_moat(task2_pos[0] + 64 * i,
|
self.add_tile(task2_pos[0] + 64 * i,
|
||||||
task2_pos[1] - 48,
|
task2_pos[1] - 48,
|
||||||
'moat_horizontal')
|
'moat_horizontal')
|
||||||
for i in range(task2_size[0] - 2):
|
for i in range(task2_size[0] - 2):
|
||||||
self.add_moat(task2_pos[0] + 64 * i,
|
self.add_tile(task2_pos[0] + 64 * i,
|
||||||
task2_pos[1] + 48 * task2_size[1],
|
task2_pos[1] + 48 * task2_size[1],
|
||||||
'moat_horizontal')
|
'moat_horizontal')
|
||||||
# Corners
|
# Corners
|
||||||
self.add_moat(task2_pos[0] + 64 * task2_size[0],
|
self.add_tile(task2_pos[0] + 64 * task2_size[0],
|
||||||
task2_pos[1] - 48,
|
task2_pos[1] - 48,
|
||||||
'moat_corner_north_flip')
|
'moat_corner_north_flip')
|
||||||
self.add_moat(task2_pos[0] - 64,
|
self.add_tile(task2_pos[0] - 64,
|
||||||
task2_pos[1] + 48 * task2_size[1],
|
task2_pos[1] + 48 * task2_size[1],
|
||||||
'moat_corner_south')
|
'moat_corner_south')
|
||||||
|
|
||||||
# Start
|
# Start
|
||||||
self.add_moat(task2_pos[0] + 64 * 2,
|
self.add_tile(task2_pos[0] + 64 * 2,
|
||||||
task2_pos[1] - 48,
|
task2_pos[1] - 48,
|
||||||
'moat_horizontal')
|
'moat_horizontal')
|
||||||
self.add_moat(task2_pos[0] + 64 * 3,
|
self.add_tile(task2_pos[0] + 64 * 3,
|
||||||
task2_pos[1] - 48,
|
task2_pos[1] - 48,
|
||||||
'moat_end_horizontal_flip')
|
'moat_end_horizontal_flip')
|
||||||
self.add_moat(task2_pos[0] + 64 * 5,
|
self.add_tile(task2_pos[0] + 64 * 5,
|
||||||
task2_pos[1] - 48,
|
task2_pos[1] - 48,
|
||||||
'moat_end_horizontal')
|
'moat_end_horizontal')
|
||||||
self.add_moat(task2_pos[0] - 64,
|
self.add_tile(task2_pos[0] - 64,
|
||||||
task2_pos[1] - 48 * 2,
|
task2_pos[1] - 48 * 2,
|
||||||
'moat_corner_north')
|
'moat_corner_north')
|
||||||
self.add_moat(task2_pos[0],
|
self.add_tile(task2_pos[0],
|
||||||
task2_pos[1] - 48 * 2,
|
task2_pos[1] - 48 * 2,
|
||||||
'moat_horizontal')
|
'moat_horizontal')
|
||||||
self.add_moat(task2_pos[0] + 64,
|
self.add_tile(task2_pos[0] + 64,
|
||||||
task2_pos[1] - 48 * 2,
|
task2_pos[1] - 48 * 2,
|
||||||
'moat_corner_north_flip')
|
'moat_corner_north_flip')
|
||||||
self.add_moat(task2_pos[0] + 64,
|
self.add_tile(task2_pos[0] + 64,
|
||||||
task2_pos[1] - 48,
|
task2_pos[1] - 48,
|
||||||
'moat_corner_south')
|
'moat_corner_south')
|
||||||
|
|
||||||
# End
|
# End
|
||||||
self.add_moat(task2_pos[0] + 64 * task2_size[0],
|
self.add_tile(task2_pos[0] + 64 * task2_size[0],
|
||||||
task2_pos[1] + 48 * (task2_size[1] - 2),
|
task2_pos[1] + 48 * (task2_size[1] - 2),
|
||||||
'moat_corner_south')
|
'moat_corner_south')
|
||||||
self.add_moat(task2_pos[0] + 64 * (task2_size[0] + 1),
|
self.add_tile(task2_pos[0] + 64 * (task2_size[0] + 1),
|
||||||
task2_pos[1] + 48 * (task2_size[1] - 2),
|
task2_pos[1] + 48 * (task2_size[1] - 2),
|
||||||
'moat_corner_north_flip')
|
'moat_corner_north_flip')
|
||||||
self.add_moat(task2_pos[0] + 64 * (task2_size[0] + 1),
|
self.add_tile(task2_pos[0] + 64 * (task2_size[0] + 1),
|
||||||
task2_pos[1] + 48 * (task2_size[1] - 1),
|
task2_pos[1] + 48 * (task2_size[1] - 1),
|
||||||
'moat_vertical')
|
'moat_vertical')
|
||||||
self.add_moat(task2_pos[0] + 64 * (task2_size[0] + 1),
|
self.add_tile(task2_pos[0] + 64 * (task2_size[0] + 1),
|
||||||
task2_pos[1] + 48 * (task2_size[1]),
|
task2_pos[1] + 48 * (task2_size[1]),
|
||||||
'moat_corner_south_flip')
|
'moat_corner_south_flip')
|
||||||
self.add_moat(task2_pos[0] + 64 * (task2_size[0]),
|
self.add_tile(task2_pos[0] + 64 * (task2_size[0]),
|
||||||
task2_pos[1] + 48 * (task2_size[1]),
|
task2_pos[1] + 48 * (task2_size[1]),
|
||||||
'moat_end_horizontal')
|
'moat_end_horizontal')
|
||||||
self.add_moat(task2_pos[0] + 64 * (task2_size[0] - 2),
|
self.add_tile(task2_pos[0] + 64 * (task2_size[0] - 2),
|
||||||
task2_pos[1] + 48 * (task2_size[1]),
|
task2_pos[1] + 48 * (task2_size[1]),
|
||||||
'moat_end_horizontal_flip')
|
'moat_end_horizontal_flip')
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ class Level1(level.Level):
|
||||||
|
|
||||||
### Task 3: Colour blocks
|
### Task 3: Colour blocks
|
||||||
|
|
||||||
task3_pos = (64 * 3, 48 * 16)
|
task3_pos = (64 * 15, 48 * 18)
|
||||||
|
|
||||||
# Abstract "boxes", actually colour fields
|
# Abstract "boxes", actually colour fields
|
||||||
boxes = logic.colourboxes.generate_colour_boxes(1, 3)
|
boxes = logic.colourboxes.generate_colour_boxes(1, 3)
|
||||||
|
@ -210,6 +210,8 @@ class Level1(level.Level):
|
||||||
# y * 48 + task3_pos[1],
|
# y * 48 + task3_pos[1],
|
||||||
# self.imgs['ground1']))
|
# self.imgs['ground1']))
|
||||||
pos_colour[(x, y)] = box
|
pos_colour[(x, y)] = box
|
||||||
|
self.add_tile(task3_pos[0] + 64 * x, task3_pos[1] + 48 * y,
|
||||||
|
'indoor%d' % random.randint(1, 6), blocking=False)
|
||||||
|
|
||||||
action_blocks = [block.ActionBlock(self, 64 * i + task3_pos[0],
|
action_blocks = [block.ActionBlock(self, 64 * i + task3_pos[0],
|
||||||
task3_pos[1], movable=True)
|
task3_pos[1], movable=True)
|
||||||
|
@ -240,8 +242,8 @@ class Level1(level.Level):
|
||||||
|
|
||||||
self.objects.append(
|
self.objects.append(
|
||||||
lever.Lever(self,
|
lever.Lever(self,
|
||||||
task3_pos[0] - 64 * 3,
|
task3_pos[0] + 64,
|
||||||
task3_pos[1] - 48 * 3,
|
task3_pos[1] + 48 * 4,
|
||||||
[lambda *x: (self.complete_task(3)
|
[lambda *x: (self.complete_task(3)
|
||||||
if (len([w for w in wells
|
if (len([w for w in wells
|
||||||
if (w.well_colour
|
if (w.well_colour
|
||||||
|
@ -252,7 +254,7 @@ class Level1(level.Level):
|
||||||
|
|
||||||
### Task 4: Inverted bits
|
### Task 4: Inverted bits
|
||||||
|
|
||||||
task4_pos = (64 * 13, 48 * 13)
|
task4_pos = (64 * 26, 48 * 18)
|
||||||
|
|
||||||
b = boulder.Boulder(self, task4_pos[0] - 64, task4_pos[1] - 48 * 3,
|
b = boulder.Boulder(self, task4_pos[0] - 64, task4_pos[1] - 48 * 3,
|
||||||
direction=(1, 0))
|
direction=(1, 0))
|
||||||
|
@ -309,31 +311,32 @@ class Level1(level.Level):
|
||||||
signal=[0, 4]))
|
signal=[0, 4]))
|
||||||
|
|
||||||
# Moat
|
# Moat
|
||||||
self.add_moat(task4_pos[0] - 64 * 2, task4_pos[1] - 48 * 4,
|
self.add_tile(task4_pos[0] - 64 * 2, task4_pos[1] - 48 * 4,
|
||||||
'moat_corner_north')
|
'moat_corner_north')
|
||||||
self.add_moat(task4_pos[0] - 64 * 2, task4_pos[1] - 48 * 3,
|
self.add_tile(task4_pos[0] - 64 * 2, task4_pos[1] - 48 * 3,
|
||||||
'moat_vertical')
|
'moat_vertical')
|
||||||
self.add_moat(task4_pos[0] - 64 * 2, task4_pos[1] - 48 * 2,
|
self.add_tile(task4_pos[0] - 64 * 2, task4_pos[1] - 48 * 2,
|
||||||
'moat_corner_south')
|
'moat_corner_south')
|
||||||
self.add_moat(task4_pos[0] - 64, task4_pos[1] - 48 * 2,
|
self.add_tile(task4_pos[0] - 64, task4_pos[1] - 48 * 2,
|
||||||
'moat_end_horizontal_flip')
|
'moat_end_horizontal_flip')
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
self.add_moat(task4_pos[0] + 64 * (i - 1), task4_pos[1] - 48 * 4,
|
self.add_tile(task4_pos[0] + 64 * (i - 1), task4_pos[1] - 48 * 4,
|
||||||
'moat_horizontal')
|
'moat_horizontal')
|
||||||
self.add_moat(task4_pos[0] + 64 * 9, task4_pos[1] - 48 * 4,
|
self.add_tile(task4_pos[0] + 64 * 9, task4_pos[1] - 48 * 4,
|
||||||
'moat_corner_north_flip')
|
'moat_corner_north_flip')
|
||||||
self.add_moat(task4_pos[0] + 64 * 9, task4_pos[1] - 48 * 3,
|
self.add_tile(task4_pos[0] + 64 * 9, task4_pos[1] - 48 * 3,
|
||||||
'moat_vertical')
|
'moat_vertical')
|
||||||
self.add_moat(task4_pos[0] + 64 * 9, task4_pos[1] - 48 * 2,
|
self.add_tile(task4_pos[0] + 64 * 9, task4_pos[1] - 48 * 2,
|
||||||
'moat_corner_south_flip')
|
'moat_corner_south_flip')
|
||||||
self.add_moat(task4_pos[0] + 64 * 8, task4_pos[1] - 48 * 2,
|
self.add_tile(task4_pos[0] + 64 * 8, task4_pos[1] - 48 * 2,
|
||||||
'moat_end_horizontal')
|
'moat_end_horizontal')
|
||||||
|
|
||||||
self.draw_background()
|
self.draw_background()
|
||||||
|
|
||||||
def add_moat(self, x, y, img):
|
def add_tile(self, x, y, img, blocking=True):
|
||||||
self.tiles.append(tile.Tile(self, x, y, self.imgs[img]))
|
self.tiles.append(tile.Tile(self, x, y, self.imgs[img]))
|
||||||
self.objects.append(block.InvisBlock(self, x, y))
|
if blocking:
|
||||||
|
self.objects.append(block.InvisBlock(self, x, y))
|
||||||
|
|
||||||
def load(self):
|
def load(self):
|
||||||
"""Load all resources used in the level."""
|
"""Load all resources used in the level."""
|
||||||
|
@ -342,12 +345,16 @@ class Level1(level.Level):
|
||||||
self.imgs[o] = pygame.image.load(os.path.join(
|
self.imgs[o] = pygame.image.load(os.path.join(
|
||||||
self.graphics_dir, 'tiles', '%s.png' % o))
|
self.graphics_dir, 'tiles', '%s.png' % o))
|
||||||
|
|
||||||
|
for o in range(1, 7):
|
||||||
|
self.imgs['indoor%d' % o] = pygame.image.load(os.path.join(
|
||||||
|
self.graphics_dir, 'tiles', 'indoor', 'ground%02d.png' % o))
|
||||||
|
|
||||||
l = ['block1', 'block1_lifted']
|
l = ['block1', 'block1_lifted']
|
||||||
for o in l:
|
for o in l:
|
||||||
self.imgs[o] = pygame.image.load(os.path.join(
|
self.imgs[o] = pygame.image.load(os.path.join(
|
||||||
self.graphics_dir, 'blocks', '%s.png' % o))
|
self.graphics_dir, 'blocks', '%s.png' % o))
|
||||||
|
|
||||||
l = ['hole']
|
l = ['hole', 'well']
|
||||||
for o in l:
|
for o in l:
|
||||||
self.imgs[o] = pygame.image.load(os.path.join(
|
self.imgs[o] = pygame.image.load(os.path.join(
|
||||||
self.graphics_dir, '%s.png' % o))
|
self.graphics_dir, '%s.png' % o))
|
||||||
|
|
Loading…
Reference in New Issue