Moat has been added to level 1.

This commit is contained in:
Sakse Dalum
2012-08-09 13:54:27 +02:00
parent 1ebd4a9c91
commit 9456b30c8c
4 changed files with 133 additions and 47 deletions

View File

@@ -51,18 +51,18 @@ class Level1(level.Level):
self.tiles.append(
tile.Tile(self, i*64, j*48, self.imgs['ground1']))
self.draw_background()
self.player.set_pos(64 * 10, 48 * 10)
self.player.set_pos(64 * 15, 48 * 15)
self.player.set_init_pos()
### Task 2: Rolling stone
task2_size = 15, 10
task2_pos = (64 * 20, 48 * 20)
playfield, nsteps, directions = (
logic.rollingstone.generate_simple_unsolved_solvable_extra(
10, 10, 7, 20))
task2_size[0], task2_size[1], 7, 30))
for i, j in playfield:
self.objects.append(
@@ -75,10 +75,11 @@ class Level1(level.Level):
arrow_blocks = []
n = 0
for i in directions:
arrow_blocks.append(block.ArrowBlock(self,
task2_pos[0] - 64,
task2_pos[1] + 48 * n,
i.next_pos((0, 0))))
arrow_blocks.append(
block.ArrowBlock(self,
task2_pos[0] + 64 * (task2_size[0] - n),
task2_pos[1] + 48 * (task2_size[1] + 2),
i.next_pos((0, 0))))
n += 1
self.objects.extend(arrow_blocks)
@@ -90,7 +91,7 @@ class Level1(level.Level):
toggling=True,
anim='lever_updown'))
b = boulder.Boulder(self, task2_pos[0], task2_pos[1],
b = boulder.Boulder(self, task2_pos[0], task2_pos[1] - 48,
direction=(0, 1))
self.objects.append(b)
@@ -99,6 +100,73 @@ class Level1(level.Level):
task2_pos[1] - 48 * 2,
[b.activate],
anim='lever_updown'))
# Moat sides
for i in range(-1, task2_size[1]):
self.add_moat(task2_pos[0] - 64,
task2_pos[1] + 48 * i,
'moat_vertical')
for i in range(task2_size[1] - 2):
self.add_moat(task2_pos[0] + 64 * task2_size[0],
task2_pos[1] + 48 * i,
'moat_vertical')
for i in range(6, task2_size[0]):
self.add_moat(task2_pos[0] + 64 * i,
task2_pos[1] - 48,
'moat_horizontal')
for i in range(task2_size[0] - 2):
self.add_moat(task2_pos[0] + 64 * i,
task2_pos[1] + 48 * task2_size[1],
'moat_horizontal')
# Corners
self.add_moat(task2_pos[0] + 64 * task2_size[0],
task2_pos[1] - 48,
'moat_corner_north_flip')
self.add_moat(task2_pos[0] - 64,
task2_pos[1] + 48 * task2_size[1],
'moat_corner_south')
# Start
self.add_moat(task2_pos[0] + 64 * 2,
task2_pos[1] - 48,
'moat_horizontal')
self.add_moat(task2_pos[0] + 64 * 3,
task2_pos[1] - 48,
'moat_end_horizontal_flip')
self.add_moat(task2_pos[0] + 64 * 5,
task2_pos[1] - 48,
'moat_end_horizontal')
self.add_moat(task2_pos[0] - 64,
task2_pos[1] - 48 * 2,
'moat_corner_north')
self.add_moat(task2_pos[0],
task2_pos[1] - 48 * 2,
'moat_horizontal')
self.add_moat(task2_pos[0] + 64,
task2_pos[1] - 48 * 2,
'moat_corner_north_flip')
self.add_moat(task2_pos[0] + 64,
task2_pos[1] - 48,
'moat_corner_south')
# End
self.add_moat(task2_pos[0] + 64 * task2_size[0],
task2_pos[1] + 48 * (task2_size[1] - 2),
'moat_corner_south')
self.add_moat(task2_pos[0] + 64 * (task2_size[0] + 1),
task2_pos[1] + 48 * (task2_size[1] - 2),
'moat_corner_north_flip')
self.add_moat(task2_pos[0] + 64 * (task2_size[0] + 1),
task2_pos[1] + 48 * (task2_size[1] - 1),
'moat_vertical')
self.add_moat(task2_pos[0] + 64 * (task2_size[0] + 1),
task2_pos[1] + 48 * (task2_size[1]),
'moat_corner_south_flip')
self.add_moat(task2_pos[0] + 64 * (task2_size[0]),
task2_pos[1] + 48 * (task2_size[1]),
'moat_end_horizontal')
self.add_moat(task2_pos[0] + 64 * (task2_size[0] - 2),
task2_pos[1] + 48 * (task2_size[1]),
'moat_end_horizontal_flip')
### Task 4: Inverted bits
@@ -109,7 +177,7 @@ class Level1(level.Level):
self.objects.append(b)
self.objects.append(lever.Lever(self,
task4_pos[0] - 64 * 2,
task4_pos[0] - 64 * 3,
task4_pos[1] - 48 * 3,
[b.activate]))
@@ -152,32 +220,32 @@ class Level1(level.Level):
risingblocks[i].set_init_pos()
risingblocks[n].set_init_pos()
self.objects.append(block.Block(self, task4_pos[0] + 64 * i,
task4_pos[1] - 48 * 4,
self.imgs['block1']))
# Moat
self.add_moat(task4_pos[0] - 64 * 2, task4_pos[1] - 48 * 4,
'moat_corner_north')
self.add_moat(task4_pos[0] - 64 * 2, task4_pos[1] - 48 * 3,
'moat_vertical')
self.add_moat(task4_pos[0] - 64 * 2, task4_pos[1] - 48 * 2,
'moat_corner_south')
self.add_moat(task4_pos[0] - 64, task4_pos[1] - 48 * 2,
'moat_end_horizontal_flip')
for i in range(10):
self.add_moat(task4_pos[0] + 64 * (i - 1), task4_pos[1] - 48 * 4,
'moat_horizontal')
self.add_moat(task4_pos[0] + 64 * 9, task4_pos[1] - 48 * 4,
'moat_corner_north_flip')
self.add_moat(task4_pos[0] + 64 * 9, task4_pos[1] - 48 * 3,
'moat_vertical')
self.add_moat(task4_pos[0] + 64 * 9, task4_pos[1] - 48 * 2,
'moat_corner_south_flip')
self.add_moat(task4_pos[0] + 64 * 8, task4_pos[1] - 48 * 2,
'moat_end_horizontal')
self.draw_background()
self.objects.append(block.Block(self, task4_pos[0] - 64,
task4_pos[1] - 48 * 2,
self.imgs['block1']))
self.objects.append(block.Block(self, task4_pos[0] - 64,
task4_pos[1] - 48 * 4,
self.imgs['block1']))
self.objects.append(block.Block(self, task4_pos[0] + 64 * 8,
task4_pos[1] - 48 * 4,
self.imgs['block1']))
self.objects.append(block.Block(self, task4_pos[0] + 64 * 8,
task4_pos[1] - 48 * 2,
self.imgs['block1']))
self.objects.append(block.Block(self, task4_pos[0] + 64 * 9,
task4_pos[1] - 48 * 4,
self.imgs['block1']))
self.objects.append(block.Block(self, task4_pos[0] + 64 * 9,
task4_pos[1] - 48 * 3,
self.imgs['block1']))
self.objects.append(block.Block(self, task4_pos[0] + 64 * 9,
task4_pos[1] - 48 * 2,
self.imgs['block1']))
def add_moat(self, x, y, img):
self.tiles.append(tile.Tile(self, x, y, self.imgs[img]))
self.objects.append(block.InvisBlock(self, x, y))
def load(self):
"""Load all resources used in the level."""
@@ -199,7 +267,15 @@ class Level1(level.Level):
'moat_vertical']
for moat in moat_list:
self.imgs[moat] = pygame.image.load(os.path.join(
self.graphics_dir, 'moat', '%s.png' % block))
self.graphics_dir, 'moat', '%s.png' % moat))
# Special treatment
self.imgs['moat_corner_north_flip'] = pygame.transform.flip(
self.imgs['moat_corner_north'], 1, 0)
self.imgs['moat_corner_south_flip'] = pygame.transform.flip(
self.imgs['moat_corner_south'], 1, 0)
self.imgs['moat_end_horizontal_flip'] = pygame.transform.flip(
self.imgs['moat_end_horizontal'], 1, 0)
# Load animations
for anim, directory in (