Пример #1
0
    def is_done(self):
        if (self.lost == True):
            if (self.score > self.highscore):
                self.highscore = self.score
            self.start_text = 'Play Again'
            self.score = 0
            self.radius = 0
            self.obstacles.clear()
            self.props.clear()
            self.textures.clear()
            self.center_line = [0] * (self.road_height)
            self.offset = 0
            self.dxoffset = 0
            self.dxxoffset = 0
            self.straighten = 0  # Equals 1 when road curve is straightening out again
            self.curve_switch = 1  # Every n seconds alternate between emitting a left curve and right
            self.straight_count = 0  # Variable to hold curve state before straightening out
            self.pos = (150, self.player_height)
            pygame.time.set_timer(self.road_prop_event, 0)
            pygame.time.set_timer(self.road_curve_event, 0)
            pygame.time.set_timer(self.road_obstacle_event, 0)
            pygame.time.set_timer(self.road_sign_event, 0)
            pygame.time.set_timer(self.speedup_event, 0)
            self.lost = False
            return 3
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                return 1
            if event.type == self.start_game_event:
                self.ROAD_OBSTACLE_DELAY = 2000
                pygame.time.set_timer(self.start_game_event, 0)
                pygame.time.set_timer(self.road_prop_event, ROAD_PROP_DELAY)
                pygame.time.set_timer(self.road_curve_event, ROAD_CURVE_DELAY)
                pygame.time.set_timer(self.road_obstacle_event,
                                      self.ROAD_OBSTACLE_DELAY)
                pygame.time.set_timer(self.road_sign_event, ROAD_SIGN_DELAY)
                pygame.time.set_timer(self.speedup_event, SPEED_UP_DELAY)
                return 2
            if event.type == self.road_prop_event:
                choice = random.randint(1, 5)
                if choice < 4:
                    prop = Texture()  # left tree
                    prop.set_type("tree")
                    prop.set_offset(-1)
                    prop.set_boost(4)
                    self.props.insert(0, prop)
                    prop2 = Texture()  # right tree
                    prop2.set_type("tree")
                    prop2.set_boost(4)
                    prop2.set_offset(1)
                    self.props.insert(0, prop2)
                else:
                    prop = Texture()  # rock
                    prop.set_type("rock")
                    if (choice == 4):
                        prop.set_offset(-1)
                    elif (choice == 5):
                        prop.set_offset(1)
                    prop.set_boost(4)
                    self.props.insert(0, prop)
            if event.type == self.road_sign_event:
                prop = Texture()  # rock
                prop.set_type("speedsign")
                prop.set_boost(4)
                self.props.insert(0, prop)

            if event.type == self.road_curve_event:
                if (self.curve_switch == 0):
                    self.left_curve()
                    self.curve_switch = 1
                elif (self.curve_switch == 1):
                    self.right_curve()
                    self.curve_switch = 0
            if event.type == self.road_obstacle_event:
                num_cars = random.randint(1, 2)
                choice = random.sample((1, 3, 5), num_cars)
                for i in range(num_cars):
                    obstacle = Texture()  # left tree
                    obstacle.set_offset(choice[i])
                    type = random.choice(range(len(self.cars)))
                    obstacle.set_type(type)
                    self.obstacles.insert(0, obstacle)
            if event.type == self.speedup_event:
                if self.ROAD_OBSTACLE_DELAY > 1200:
                    self.ROAD_OBSTACLE_DELAY -= 200

        return 0