Пример #1
0
class Lane():
    def __init__(self, initial_x, direction, is_last):
        self.x = initial_x
        self.direction = direction
        self.is_last = is_last
        self.width = c.LANE_WIDTH + c.DOTTED_LINE_WIDTH
        if self.is_last:
            self.width -= +c.DOTTED_LINE_WIDTH

        self.light = 0
        self.light_pos = 0

    def create_light(self):
        if self.light == 0:
            self.light_pos = c.LIGHT_POSITION
            self.light = Light(self.x, self.light_pos, self.width)

    def get_light_position(self):
        return self.light_pos

    def turn_light_red(self):
        self.light.stop()

    def turn_light_green(self):
        self.light.go()

    def is_light_green(self):
        return self.light.is_green()

    def is_light_yellow(self):
        return self.light.is_yellow()

    def cancel_light(self):
        if self.light != 0:
            self.light.cancel_timer()

    def has_light(self):
        return self.light != 0

    def get_start_position(self):
        return self.x

    def get_end_position(self):
        return self.x + self.width

    def get_car_x(self):
        return self.x + (self.width - c.CAR_WIDTH) / 2

    def get_direction(self):
        return self.direction

    def draw(self, canvas):
        canvas.create_rectangle(self.x, 0, self.x+self.width, \
                c.HEIGHT, outline=c.COLOR_STREET_GRAY, fill=c.COLOR_STREET_GRAY)
        if (not self.is_last):
            middle_pos = self.x + self.width
            canvas.create_line(middle_pos,
                               0,
                               middle_pos,
                               c.HEIGHT,
                               fill=c.COLOR_WHITE,
                               width=c.DOTTED_LINE_WIDTH,
                               dash=(40, 40))

        if (self.light != 0):
            self.light.draw(canvas)
Пример #2
0
class   Minotaur(Ennemy):

    def __init__(self, x, y, start, end):

        super(Minotaur, self).__init__(x, y)

        # liste des sprite d'animation des ennemis
        self.sprites = {
            'idle': Sprite('Assets/Minotaur/min_idle_light.png', 10, 1, 2),
            'idleNo': Sprite('Assets/Minotaur/min_idle_NOlight.png', 10, 1, 2),
            'walks': Sprite('Assets/Minotaur/min_walking.png', 10, 1, 2)
        }

        self.light = Light(self.x, self.y)

        self.start = start
        self.end = end
        self.peur = False


    def events(self):
        if self.x < self.start or self.x > self.end:
            self.velocity = -self.velocity
            self.flip = self.velocity < 0

    def move(self):
        self.x += self.velocity
        self.light.x += self.velocity

    def attack(self):

        self.peur = True


    def draw(self, fenetre):
        s = ''
        if not self.peur:

            self.events()
            self.move()



            self.light.draw(fenetre)

            if self.velocity == 0:
                self.sprites['idle'].draw(fenetre, self.x, self.y, self.flip)
                s = 'idle'
            else:
                self.sprites['walks'].draw(fenetre, self.x, self.y, self.flip)
                s = 'walks'

            self.hitbox = pygame.rect.Rect(self.x + self.sprites[s].handle[7][0] - 20,
                                           self.y + self.sprites[s].handle[7][1],
                                           self.sprites[s].cells[0][2] + 30,
                                           self.sprites[s].cells[0][3]
                                           )



        else:
            self.hitbox = None
            self.sprites['idleNo'].draw(fenetre, self.x, self.y, self.flip)
            s = 'idleNo'
            self.peur = False