-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDrawer.py
More file actions
96 lines (76 loc) · 3.37 KB
/
Copy pathDrawer.py
File metadata and controls
96 lines (76 loc) · 3.37 KB
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
import pygame
import time
class Drawer(object):
def __init__(self, screen, width, height, bird, controller):
self.screen = screen
self.width = width
self.height = height
self.bird = bird
self.controller = controller
self.bg = pygame.image.load("sprites/bg.png")
self.midflap = pygame.image.load("sprites/midflap.png")
self.bird_image = self.midflap
self.upflap = pygame.image.load("sprites/upflap.png")
self.downflap = pygame.image.load("sprites/downflap.png")
self.base = pygame.image.load("sprites/base.png")
self.last_time = time.time()
self.zero = pygame.image.load("sprites/0.png")
self.one = pygame.image.load("sprites/1.png")
self.two = pygame.image.load("sprites/2.png")
self.three = pygame.image.load("sprites/3.png")
self.four = pygame.image.load("sprites/4.png")
self.five = pygame.image.load("sprites/5.png")
self.six = pygame.image.load("sprites/6.png")
self.seven = pygame.image.load("sprites/7.png")
self.eight = pygame.image.load("sprites/8.png")
self.nine = pygame.image.load("sprites/9.png")
self.numbers = [self.zero, self.one, self.two, self.three, self.four, self.five, self.six, self.seven,
self.eight, self.nine]
def draw(self):
self.screen.blit(self.bg, (0, 0))
self.screen.blit(self.base, (0, 550))
self.draw_bird()
self.draw_pipes()
self.draw_score()
def draw_bird(self):
if time.time() - self.last_time > 0.08:
self.last_time = time.time()
if self.bird_image == self.midflap:
self.bird_image = self.upflap
elif self.bird_image == self.upflap:
self.bird_image = self.downflap
else:
self.bird_image = self.midflap
x, y = self.bird.get_pos()
new_x, new_y = x - self.bird.size, y - self.bird.size
self.screen.blit(self.bird_image, (new_x, new_y))
def draw_pipes(self):
gap_size = self.controller.pipe_gap
pipe_size = self.controller.pipe_size
for pipe in self.controller.pipes:
green = (10, 200, 10)
pygame.draw.rect(self.screen, (0, 0, 0),
(int(pipe[0]) - 3, 0, pipe_size + 6,
int(pipe[1] - gap_size / 2) + 3))
pygame.draw.rect(self.screen, green,
(int(pipe[0]), 0, pipe_size,
int(pipe[1] - gap_size / 2)))
pygame.draw.rect(self.screen, (0, 0, 0),
(pipe[0] - 3, int(pipe[1] + gap_size / 2) - 3, pipe_size + 6,
600))
pygame.draw.rect(self.screen, green,
(pipe[0], int(pipe[1] + gap_size / 2), pipe_size,
600))
def draw_score(self):
drawing = []
xs = [220,240,261]
score = self.controller.score
y = 120
for e in str(score):
drawing.append(int(e))
for i in range(len(drawing)):
e = drawing[i]
x = xs[i]
if i == 0 and e == 1:
x += 7
self.screen.blit(self.numbers[e], (x, y))