-
Notifications
You must be signed in to change notification settings - Fork 8
/
hurdles.py
127 lines (96 loc) · 3.85 KB
/
hurdles.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
'''Design of hurdles'''
from obstacles import Pipe, Valley, Brick
from enemy import SlaveEnemy, BossEnemy
from coins import coin_row
from spring import Spring
from base import FLOOR, Point, Dimension
HURDLES = []
class Hurdle:
'''A group of obstacles'''
def __init__(self, start, width, obstacles, enemies, board):
self.start = start
self.width = width
self.obstacles = obstacles
self.enemies = enemies
self.board = board
def load(self):
'''Render on board'''
for i in self.obstacles:
i.draw()
for i in self.enemies:
i.update()
def motion(self):
'''Self motion of enemies'''
for i in self.enemies:
i.self_move(1)
class ThreePipes(Hurdle):
'''Creating three pipe hurdle'''
def __init__(self, start, board):
width = 21
obstacles = []
obstacles.append(Pipe(start, 6, board))
obstacles.append(Pipe(start + 8, 10, board))
obstacles.append(Valley(start+13, 3, board))
obstacles.append(Pipe(start + 16, 14, board))
Hurdle.__init__(self, start, width, obstacles, [], board)
self.load()
HURDLES.append([21, ThreePipes])
class TwoPipes(Hurdle):
''' 2 enemies between two pipes'''
def __init__(self, start, board):
width = 36
obstacles = []
obstacles.append(Pipe(start, 6, board))
obstacles.append(Pipe(start + 30, 6, board))
enemy = []
enemy.append(SlaveEnemy(FLOOR - 2, start + 9, board))
enemy.append(SlaveEnemy(FLOOR - 2, start + 13, board))
Hurdle.__init__(self, start, width, obstacles, enemy, board)
self.load()
HURDLES.append([36, TwoPipes])
class BrickJungle(Hurdle):
'''Some arrangement of bricks'''
def __init__(self, start, board):
width = 56
obstacles = []
obstacles.append(Brick(Point(19, start), Dimension(2, 5), board))
obstacles.append(Brick(Point(15, start + 8), Dimension(2, 5), board))
obstacles.append(Brick(Point(11, start + 16), Dimension(2, 5), board))
obstacles.append(Brick(Point(5, start + 21), Dimension(2, 11), board))
obstacles.append(Brick(Point(19, start + 21), Dimension(2, 11), board))
obstacles.append(Valley(start + 18, 17, board))
obstacles.append(Brick(Point(11, start + 32), Dimension(2, 5), board))
obstacles.append(Brick(Point(15, start + 40), Dimension(2, 5), board))
obstacles.append(Brick(Point(19, start + 48), Dimension(2, 5), board))
coin_row(Point(4, start+21), Dimension(1, 11), board)
Hurdle.__init__(self, start, width, obstacles, [], board)
self.load()
HURDLES.append([56, BrickJungle])
class BossPipes(Hurdle):
''' 1 boss enemies between two pipes'''
def __init__(self, start, board):
width = 36
obstacles = []
obstacles.append(Pipe(start, 6, board))
obstacles.append(Pipe(start + 30, 6, board))
obstacles.append(Brick(Point(15, start + 9), Dimension(2, 7), board))
obstacles.append(Brick(Point(15, start + 19), Dimension(2, 7), board))
enemy = []
enemy.append(BossEnemy(FLOOR - 3, start + 9, board))
coin_row(Point(FLOOR - 1, start + 5), Dimension(1, 25), board)
Hurdle.__init__(self, start, width, obstacles, enemy, board)
self.load()
HURDLES.append([36, BossPipes])
class SpringPipe(Hurdle):
'''Springs'''
def __init__(self, start, board):
width = 26
obstacles = []
obstacles.append(Spring(start + 3, 6, board))
coin_row(Point(8, start + 6), Dimension(10, 1), board)
enemy = []
enemy.append(SlaveEnemy(FLOOR - 2, start, board))
enemy.append(SlaveEnemy(FLOOR - 2, start + 13, board))
Hurdle.__init__(self, start, width, obstacles, enemy, board)
self.load()
HURDLES.append([26, SpringPipe])