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