Worked on task 4.

This commit is contained in:
Sakse Dalum
2012-08-08 22:40:27 +02:00
parent 67611d3ad1
commit 48a4a2ee3b
6 changed files with 157 additions and 31 deletions

View File

@@ -40,7 +40,8 @@ import logic.rollingstone
class Level1(level.Level):
def __init__(self, game, graphics_dir, paused=False):
level.Level.__init__(self, game, graphics_dir, size=(64*20, 48*20),
level.Level.__init__(self, game, graphics_dir, size=(64 * 100,
48 * 100),
paused=paused)
self.dimensions = 50, 50
@@ -58,41 +59,102 @@ class Level1(level.Level):
# self.imgs['block1'],
# movable=True))
b = boulder.Boulder(self, 64, 0, direction=(0, 1))
self.objects.append(b)
self.objects.append(lever.Lever(self, 64*2, 0, [b.activate]))
self.player.set_pos(64 * 10, 48 * 10)
self.player.set_init_pos()
playfield_pos = (64*2, 48*2)
### Task 2: Rolling stone
task2_pos = (64 * 20, 48 * 20)
playfield, nsteps, directions = (
logic.rollingstone.generate_simple_unsolved_solvable_extra(10, 10, 7, 20))
logic.rollingstone.generate_simple_unsolved_solvable_extra(
10, 10, 7, 20))
for i in range(10):
for j in range(10):
if (i, j) in playfield:
if playfield[(i, j)] is logic.rollingstone.Blocker:
self.objects.append(
block.Block(self,
playfield_pos[0] + 64 * i,
playfield_pos[1] + 48 * j,
self.imgs['block1'],
movable=True))
for i, j in playfield:
self.objects.append(
block.Block(self,
task2_pos[0] + 64 * i,
task2_pos[1] + 48 * j,
self.imgs['block1'],
movable=True))
arrow_blocks = []
n = 0
for i in directions:
arrow_blocks.append(block.ArrowBlock(self,
playfield_pos[0] - 64,
playfield_pos[1] + 48 * n,
task2_pos[0] - 64,
task2_pos[1] + 48 * n,
i.next_pos((0, 0))))
n += 1
self.objects.extend(arrow_blocks)
self.objects.append(lever.Lever(self, 64*3, 0,
self.objects.append(lever.Lever(self,
task2_pos[0] + 64 * 3,
task2_pos[1] - 48 * 2,
[arrow_block.activate
for arrow_block in arrow_blocks],
toggling=True))
toggling=True,
anim='lever_updown'))
b = boulder.Boulder(self, task2_pos[0], task2_pos[1],
direction=(0, 1))
self.objects.append(b)
self.objects.append(lever.Lever(self,
task2_pos[0] + 64 * 2,
task2_pos[1] - 48 * 2,
[b.activate],
anim='lever_updown'))
### Task 4: Inverted bits
task4_pos = (64 * 13, 48 * 13)
b = boulder.Boulder(self, task4_pos[0] - 64, task4_pos[1] - 48 * 3,
direction=(1, 0))
self.objects.append(b)
self.objects.append(lever.Lever(self,
task4_pos[0] - 64 * 2,
task4_pos[1] - 48 * 3,
[b.activate]))
risingblocks = [block.RisingBlock(self, task4_pos[0] + 64 * i,
task4_pos[1] - 48 * 3,
is_up = False)
for i in range(8)]
for i in range(8):
self.objects.append(risingblocks[i])
n = random.randint(0, 7)
self.objects.append(lever.Lever(self,
task4_pos[0] + 64 * i,
task4_pos[1] - 48 * 2,
[risingblocks[i].activate,
risingblocks[n].activate],
anim='lever_updown',
toggling=True,
signal=[0, 1]))
for k in range(random.randint(0, 1)):
self.objects[-1].use(self)
self.objects[-1].set_init_pos()
risingblocks[i].set_init_pos()
risingblocks[n].set_init_pos()
n = random.randint(0, 7)
self.objects.append(lever.Lever(self,
task4_pos[0] + 64 * i,
task4_pos[1],
[risingblocks[i].activate,
risingblocks[n].activate],
anim='lever_updown',
toggling=True,
signal=[2, 3]))
for i in range(random.randint(0, 1)):
self.objects[-1].use(self)
self.objects[-1].set_init_pos()
risingblocks[i].set_init_pos()
risingblocks[n].set_init_pos()
def load(self):
"""Load all resources used in the level."""