Passed
Push — master ( 2f29cd...4bc53c )
by Yohann
01:12
created

platform.Platform.check_hit_box()   B

Complexity

Conditions 5

Size

Total Lines 33
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 22
nop 2
dl 0
loc 33
rs 8.8853
c 0
b 0
f 0
1
from random import randrange
2
3
from src.utils import load
4
5
6
class Platform:
7
    _texture = None
8
9
    def __init__(self, x, y):
10
        self.rect = self.texture.get_rect()
11
12
        self.rect.x = x
13
        self.rect.y = y
14
15
        self.initial_y = self.rect.y
16
17
    @property
18
    def texture(self):
19
        if self._texture is None:
20
            self._texture = load("src/assets/images/platform.png")
21
        return self._texture
22
23
    def move(self, game):
24
        if self.rect.x < -500:
25
            self.rect.x = self.rect.x = max(
26
                platform.rect.x for platform in game.platforms
27
            ) + randrange(600, 1000)
28
29
            self.rect.y = randrange(400, 620)
30
            self.initial_y = self.rect.y
31
32
        else:
33
            self.rect.x -= int(game.player.ax)
34
35
    def check_hit_box(self, game):
36
        if any(
37
                [
38
                    self.rect.collidepoint(
39
                        game.player.rect.x, game.player.rect.y + 68
40
                    ),
41
                    self.rect.collidepoint(
42
                        game.player.rect.x + 50, game.player.rect.y + 68
43
                    )
44
                ]
45
        ):
46
47
            game.player.rect.y = self.rect.y - 68 + 1
48
            game.player.jump_count = 1
49
            self.rect.x += randrange(0, 2) - 1
50
            self.rect.y += 2
51
52
        elif self.rect.y > self.initial_y:
53
            self.rect.y -= 1
54
55
        if any(
56
                [
57
                    self.rect.collidepoint(
58
                        game.player.rect.x + 50, game.player.rect.y
59
                    ),
60
                    self.rect.collidepoint(
61
                        game.player.rect.x + 50, game.player.rect.y + 66
62
                    )
63
                ]
64
        ):
65
            game.player.rect.x = self.rect.x - 51
66
            if game.player.rect.x < 0:
67
                game.over = True
68