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
|
# the map is 2d array of with size (160, 120)
# 0 -> free
# 1 -> vertical line
# 2 ->
import pygame
import settings as Settings
U = 1
D = 4
L = 8
R = 2
LU = L | U
LD = L | D
RU = R | U
RD = R | D
class Map():
"""
0 -> free
1 -> vertical line
2 -> horizontal line
3 -> right, down
"""
def __init__(self):
self.map = [
[LU, U, U, U, U, U, U, RU],
[L, 0, 0, 0, 0, 0, 0, R],
[L, 0, LU, 0, RU, 0, 0,R],
[L, 0, 0, 0, 0, 0, 0, R],
[L, 0, 0, 0, 0, 0, 0, R],
[LD, D, D, D, D, D, D, RD],
]
self.line_length = Settings.settings.width // len(self.map)
self.line_color = (0, 0, 150)
self.line_stroke = 6
def consturct_map(self):
pass
def draw_wall(self, screen, flag , pos):
if flag & U:
pos1 = pos
pos2 = (pos[0] + self.line_length, pos[1])
pygame.draw.line(screen, self.line_color, pos1, pos2, self.line_stroke)
if flag & D:
pos1 = (pos[0], pos[1] + self.line_length)
pos2 = (pos[0] + self.line_length, pos[1] + self.line_length)
pygame.draw.line(screen, self.line_color, pos1, pos2, self.line_stroke)
if flag & R:
pos1 = (pos[0] + self.line_length, pos[1])
pos2 = (pos[0] + self.line_length, pos[1] + self.line_length)
pygame.draw.line(screen, self.line_color, pos1, pos2, self.line_stroke)
if flag & L:
pos1 = pos
pos2 = (pos[0], pos[1] + self.line_length)
pygame.draw.line(screen, self.line_color, pos1, pos2, self.line_stroke)
def draw_map(self, screen):
rows = len(self.map)
cols = len(self.map[0])
# ofs = Settings.settings.width // cols
# line_color = (0, 0, 150)
# line_stroke = 6
for i in range(0, rows):
for j in range(cols):
pos = (j * self.line_length, i * self.line_length)
self.draw_wall(screen, self.map[i][j], pos)
# if self.map[i][j] == 1:
# if i == rows - 1:
# p1 = (j * ofs, (i + 1) * ofs)
# p2 = ((j + 1) * ofs, (i + 1) * ofs)
# else:
# p1 = (j * ofs, i * ofs)
# p2 = ((j + 1) * ofs, i * ofs)
# pygame.draw.line(screen, line_color, p1, p2, line_stroke)
# if self.map[i][j] == 2:
# if j == cols - 1:
# p1 = ((j + 1) * ofs, i * ofs)
# p2 = ((j + 1) * ofs, (i + 1) * ofs)
# else:
# p1 = (j * ofs, i * ofs)
# p2 = (j * ofs, (i + 1) * ofs)
# pygame.draw.line(screen, line_color, p1, p2, line_stroke)
# if self.map[i][j] == 3:
# p1_vertical = (j * ofs, i * ofs)
# p2_vertical = ((j + 1) * ofs, i * ofs)
# p1_horizontal = (j * ofs, i * ofs)
# p2_horizontal = (j * ofs, (i + 1) * ofs)
# pygame.draw.line(screen, line_color, p1_horizontal, p2_horizontal, line_stroke)
# pygame.draw.line(screen, line_color, p1_vertical, p2_vertical, line_stroke)
# if self.map[i][j] == 4:
# p1_vertical = (j * ofs, (i + 1) * ofs)
# p2_vertical = ((j + 1) * ofs, (i + 1) * ofs)
# p1_horizontal = (j * ofs, i * ofs)
# p2_horizontal = (j * ofs, (i + 1) * ofs)
# pygame.draw.line(screen, line_color, p1_horizontal, p2_horizontal, line_stroke)
# pygame.draw.line(screen, line_color, p1_vertical, p2_vertical, line_stroke)
# if self.map[i][j] == 5:
# p1_vertical = (j * ofs, (i + 1) * ofs)
# p2_vertical = ((j + 1) * ofs, (i + 1) * ofs)
# p1_horizontal = ((j + 1) * ofs, i * ofs)
# p2_horizontal = ((j + 1) * ofs, (i + 1) * ofs)
# pygame.draw.line(screen, line_color, p1_horizontal, p2_horizontal, line_stroke)
# pygame.draw.line(screen, line_color, p1_vertical, p2_vertical, line_stroke)
# if self.map[i][j] == 6:
# p1_vertical = (j * ofs, i * ofs)
# p2_vertical = ((j + 1) * ofs, i * ofs)
# p1_horizontal = ((j + 1) * ofs, i * ofs)
# p2_horizontal = ((j + 1) * ofs, (i + 1) * ofs)
# pygame.draw.line(screen, line_color, p1_horizontal, p2_horizontal, line_stroke)
# pygame.draw.line(screen, line_color, p1_vertical, p2_vertical, line_stroke)
|