Subway Surfers For Linux 💯 Tested & Working

# Update coins & collection for coin in coins[:]: coin.update(speed) if coin.off_screen(): coins.remove(coin) elif player.rect.colliderect(coin.rect) and player.track == coin.track: coins.remove(coin) total_coins += 1 score += 10 # extra points for coins

def off_screen(self): return self.x + OBSTACLE_WIDTH < 0 class Coin: def (self, track, x): self.track = track self.x = x self.rect = pygame.Rect(x, TRACK_Y[track] + 8, COIN_SIZE, COIN_SIZE)

def update(self, speed): self.x -= speed self.rect.x = self.x

def show_coins(coins, surf): text = font.render(f"Coins: coins", True, YELLOW) surf.blit(text, (WIDTH - 150, 10)) Subway Surfers For Linux

def update_rect(self): self.rect.y = TRACK_Y[self.track]

# Update obstacles for obs in obstacles[:]: obs.update(speed) if obs.off_screen(): obstacles.remove(obs) # Collision detection if player.rect.colliderect(obs.rect) and player.track == obs.track: running = game_over_screen(score, total_coins) if running: # Reset game player = Player() obstacles.clear() coins.clear() score = 0 total_coins = 0 speed = base_speed frame = 0 else: return

waiting = True while waiting: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_r: waiting = False return True if event.key == pygame.K_q: pygame.quit() sys.exit() return False def main(): player = Player() obstacles = [] coins = [] score = 0 total_coins = 0 speed = 5 base_speed = 5 frame = 0 running = True # Update coins & collection for coin in coins[:]: coin

def draw(self, surf): pygame.draw.circle(surf, YELLOW, (self.rect.centerx, self.rect.centery), COIN_SIZE//2) pygame.draw.circle(surf, BLACK, (self.rect.centerx, self.rect.centery), COIN_SIZE//2, 2)

pygame.display.flip()

class Player: def (self): self.x = 100 self.track = 1 # 0,1,2 self.rect = pygame.Rect(self.x, TRACK_Y[self.track], PLAYER_WIDTH, PLAYER_HEIGHT) 0 class Coin: def (self

def update(self, speed): self.x -= speed self.rect.x = self.x

# Event handling for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: player.move_up() if event.key == pygame.K_DOWN: player.move_down()