```python

import pygame
import sys
import random

# Initialize Pygame
pygame.init()

# Set up screen
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Wasteland v1")

# Load background image
background_image = pygame.image.load("wasteland.jpg")
background_image = pygame.transform.scale(background_image, (screen_width, screen_height))

# Create font for title (using Death Metal font)
title_font = pygame.font.Font("death_metal_font.ttf", 70)

# Player properties
player_width = 50
player_height = 50
player_x = screen_width // 2 - player_width // 2
player_y = screen_height - player_height
player_speed = 5
player_bullet = pygame.Rect(player_x + 20, player_y - 10, 5, 10)
bullet_speed = 10
is_shooting = False
player_health = 150

# Zombie properties
zombie_width = 50
zombie_height = 50
zombie_speed = 2
zombie_damage = 10
zombies = []
spawn_rate = 30
spawn_counter = 0

# Zombie King properties
king_width = 100
king_height = 100
king_health = 200
king_damage = 20
king_x = random.randint(50, screen_width - 50)
king_y = 50
king_speed = 2
king_bullet = pygame.Rect(king_x + 40, king_y + 90, 5, 10)
king_bullet_speed = 5
is_king_shooting = False

# Mini zombie properties
mini_zombie_width = 30
mini_zombie_height = 30
mini_zombie_speed = 4
mini_zombie_damage = 5
mini_zombies = []

# Game state and level
game_state = "start"
level = 1

# Weapons
weapons = ["laser gun", "mini gun", "rocket launcher", "blackhole spawner"]
weapon_damage = 20

# Animation properties for title
title_animation_speed = 0.5
title_alpha = 0
title_fade_direction = title_animation_speed

# Main game loop
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
if game_state == "start":
game_state = "playing"
elif game_state == "playing":
is_shooting = True

if game_state == "start":
# Animation for title
title_alpha += title_fade_direction
if title_alpha >= 255:
title_alpha = 255
title_fade_direction = -title_animation_speed
elif title_alpha <= 0:
title_alpha = 0
title_fade_direction = title_animation_speed

screen.fill((200, 200, 200)) # Light gray background for start screen
title_text = title_font.render("Wasteland v1", True, (0, 0, 0))
title_text.set_alpha(title_alpha)
screen.blit(title_text, (screen_width // 2 - title_text.get_width() // 2, screen_height // 2 - title_text.get_height() // 2))

# Display controls in the main menu
controls_font = pygame.font.Font(None, 30)
controls_text = controls_font.render("Press SPACE to Play", True, (0, 0, 0))
screen.blit(controls_text, (screen_width // 2 - controls_text.get_width() // 2, screen_height // 2 + 50))

elif game_state == "playing":
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
player_x -= player_speed
if keys[pygame.K_RIGHT]:
player_x += player_speed

if is_shooting:
player_bullet.y -= bullet_speed

# Spawn zombies
spawn_counter += 1
if spawn_counter >= spawn_rate:
if level % 2 == 0:
mini_zombies.append([pygame.Rect(random.randrange(screen_width - mini_zombie_width), 0, mini_zombie_width, mini_zombie_height), 100])
mini_zombies.append([pygame.Rect(random.randrange(screen_width - mini_zombie_width), 0, mini_zombie_width, mini_zombie_height), 100])
mini_zombies.append([pygame.Rect(random.randrange(screen_width - mini_zombie_width), 0, mini_zombie_width, mini_zombie_height), 100])
else:
zombies.append([pygame.Rect(random.randrange(screen_width - zombie_width), 0, zombie_width, zombie_height), 100])
spawn_counter = 0

# Move zombies
for zombie in zombies:
zombie[0].y += zombie_speed

# Move mini zombies
for mini_zombie in mini_zombies:
mini_zombie[0].y += mini_zombie_speed

# Move and shoot Zombie King
if level % 5 == 0:
if king_x > player_x:
king_x -= king_speed
elif king_x < player_x:
king_x += king_speed
king_bullet.y += king_bullet_speed

# Check collision with player's bullet
for zombie in zombies:
if player_bullet.colliderect(zombie[0]):
zombie[1] -= weapon_damage
if zombie[1] <= 0:
zombies.remove(zombie)

for mini_zombie in mini_zombies:
if player_bullet.colliderect(mini_zombie[0]):
mini_zombie[1] -= weapon_damage
if mini_zombie[1] <= 0:
mini_zombies.remove(mini_zombie)

# Check collision with player
for zombie in zombies:
if zombie[0].colliderect(pygame.Rect(player_x, player_y, player_width, player_height)):
player_health -= zombie_damage
if player_health <= 0:
running = False

for mini_zombie in mini_zombies:
if mini_zombie[0].colliderect(pygame.Rect(player_x, player_y, player_width, player_height)):
player_health -= mini_zombie_damage
if player_health <= 0:
running = False

screen.blit(background_image, (0, 0))
pygame.draw.rect(screen, (0, 0, 0), (player_x, player_y, player_width, player_height))

if is_shooting:
pygame.draw.rect(screen, (0, 0, 0), player_bullet)

for zombie in zombies:
pygame.draw.rect(screen, (255, 0, 0), zombie[0])
pygame.draw.rect(screen, (0, 255, 0), (zombie[0].left, zombie[0].top - 10, zombie[1], 5))

for mini_zombie in mini_zombies:
pygame.draw.rect(screen, (255, 100, 100), mini_zombie[0])
pygame.draw.rect(screen, (0, 255, 0), (mini_zombie[0].left, mini_zombie[0].top - 10, mini_zombie[1], 5))

if level % 5 == 0:
pygame.draw.rect(screen, (100, 255, 100), (king_x, king_y, king_width, king_height))
pygame.draw.rect(screen, (0, 255, 0), (king_x, king_y - 10, king_health, 5))

if is_king_shooting:
pygame.draw.rect(screen, (100, 255, 100), king_bullet)

player_health_font = pygame.font.Font(None, 30)
player_health_text = player_health_font.render(f"Player Health: {player_health}", True, (0, 0, 0))
screen.blit(player_health_text, (10, 10))

pygame.display.flip()

pygame.quit()
sys.exit()
```
is this playabe and is there errors

There are a few errors in the code that need to be fixed before the game can be playable:

1. The indentation is not consistent throughout the code. Make sure that the code inside the `while running:` loop is properly indented.

2. The `pygame.quit()` and `sys.exit()` need to be outside of the `while running:` loop. Move them to the end of the code so that they are executed after the game loop is finished.

3. There is a missing indentation before the `for event in pygame.event.get():` loop. Indent this loop so that it is inside the `while running:` loop.

4. The `if game_state == "playing":` block is missing an indent. Make sure that all the code related to the "playing" state is properly indented under the `if game_state == "playing":` condition.

5. The `pygame.display.flip()` function should be outside the `for event in pygame.event.get():` loop, at the end of the main game loop.

Once you fix these errors, the game should be playable.

can you fix the errors please

Here is the modified code with the errors fixed:

```python
import pygame
import sys
import random

# Initialize Pygame
pygame.init()

# Set up screen
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Wasteland v1")

# Load background image
background_image = pygame.image.load("wasteland.jpg")
background_image = pygame.transform.scale(background_image, (screen_width, screen_height))

# Create font for title (using Death Metal font)
title_font = pygame.font.Font("death_metal_font.ttf", 70)

# Player properties
player_width = 50
player_height = 50
player_x = screen_width // 2 - player_width // 2
player_y = screen_height - player_height
player_speed = 5
player_bullet = pygame.Rect(player_x + 20, player_y - 10, 5, 10)
bullet_speed = 10
is_shooting = False
player_health = 150

# Zombie properties
zombie_width = 50
zombie_height = 50
zombie_speed = 2
zombie_damage = 10
zombies = []
spawn_rate = 30
spawn_counter = 0

# Zombie King properties
king_width = 100
king_height = 100
king_health = 200
king_damage = 20
king_x = random.randint(50, screen_width - 50)
king_y = 50
king_speed = 2
king_bullet = pygame.Rect(king_x + 40, king_y + 90, 5, 10)
king_bullet_speed = 5
is_king_shooting = False

# Mini zombie properties
mini_zombie_width = 30
mini_zombie_height = 30
mini_zombie_speed = 4
mini_zombie_damage = 5
mini_zombies = []

# Game state and level
game_state = "start"
level = 1

# Weapons
weapons = ["laser gun", "mini gun", "rocket launcher", "blackhole spawner"]
weapon_damage = 20

# Animation properties for title
title_animation_speed = 0.5
title_alpha = 0
title_fade_direction = title_animation_speed

# Main game loop
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
if game_state == "start":
game_state = "playing"
elif game_state == "playing":
is_shooting = True

if game_state == "start":
# Animation for title
title_alpha += title_fade_direction
if title_alpha >= 255:
title_alpha = 255
title_fade_direction = -title_animation_speed
elif title_alpha <= 0:
title_alpha = 0
title_fade_direction = title_animation_speed

screen.fill((200, 200, 200)) # Light gray background for start screen
title_text = title_font.render("Wasteland v1", True, (0, 0, 0))
title_text.set_alpha(title_alpha)
screen.blit(title_text, (screen_width // 2 - title_text.get_width() // 2, screen_height // 2 - title_text.get_height() // 2))

# Display controls in the main menu
controls_font = pygame.font.Font(None, 30)
controls_text = controls_font.render("Press SPACE to Play", True, (0, 0, 0))
screen.blit(controls_text, (screen_width // 2 - controls_text.get_width() // 2, screen_height // 2 + 50))

elif game_state == "playing":
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
player_x -= player_speed
if keys[pygame.K_RIGHT]:
player_x += player_speed

if is_shooting:
player_bullet.y -= bullet_speed

# Spawn zombies
spawn_counter += 1
if spawn_counter >= spawn_rate:
if level % 2 == 0:
mini_zombies.append([pygame.Rect(random.randrange(screen_width - mini_zombie_width), 0, mini_zombie_width, mini_zombie_height), 100])
mini_zombies.append([pygame.Rect(random.randrange(screen_width - mini_zombie_width), 0, mini_zombie_width, mini_zombie_height), 100])
mini_zombies.append([pygame.Rect(random.randrange(screen_width - mini_zombie_width), 0, mini_zombie_width, mini_zombie_height), 100])
else:
zombies.append([pygame.Rect(random.randrange(screen_width - zombie_width), 0, zombie_width, zombie_height), 100])
spawn_counter = 0

# Move zombies
for zombie in zombies:
zombie[0].y += zombie_speed

# Move mini zombies
for mini_zombie in mini_zombies:
mini_zombie[0].y += mini_zombie_speed

# Move and shoot Zombie King
if level % 5 == 0:
if king_x > player_x:
king_x -= king_speed
elif king_x < player_x:
king_x += king_speed
king_bullet.y += king_bullet_speed

# Check collision with player's bullet
for zombie in zombies:
if player_bullet.colliderect(zombie[0]):
zombie[1] -= weapon_damage
if zombie[1] <= 0:
zombies.remove(zombie)

for mini_zombie in mini_zombies:
if player_bullet.colliderect(mini_zombie[0]):
mini_zombie[1] -= weapon_damage
if mini_zombie[1] <= 0:
mini_zombies.remove(mini_zombie)

# Check collision with player
for zombie in zombies:
if zombie[0].colliderect(pygame.Rect(player_x, player_y, player_width, player_height)):
player_health -= zombie_damage
if player_health <= 0:
running = False

for mini_zombie in mini_zombies:
if mini_zombie[0].colliderect(pygame.Rect(player_x, player_y, player_width, player_height)):
player_health -= mini_zombie_damage
if player_health <= 0:
running = False

screen.blit(background_image, (0, 0))
pygame.draw.rect(screen, (0, 0, 0), (player_x, player_y, player_width, player_height))

if is_shooting:
pygame.draw.rect(screen, (0, 0, 0), player_bullet)

for zombie in zombies:
pygame.draw.rect(screen, (255, 0, 0), zombie[0])
pygame.draw.rect(screen, (0, 255, 0), (zombie[0].left, zombie[0].top - 10, zombie[1], 5))

for mini_zombie in mini_zombies:
pygame.draw.rect(screen, (255, 100, 100), mini_zombie[0])
pygame.draw.rect(screen, (0, 255, 0), (mini_zombie[0].left, mini_zombie[0].top - 10, mini_zombie[1], 5))

if level % 5 == 0:
pygame.draw.rect(screen, (100, 255, 100), (king_x, king_y, king_width, king_height))
pygame.draw.rect(screen, (0, 255, 0), (king_x, king_y - 10, king_health, 5))

if is_king_shooting:
pygame.draw.rect(screen, (100, 255, 100), king_bullet)

player_health_font = pygame.font.Font(None, 30)
player_health_text = player_health_font.render(f"Player Health: {player_health}", True, (0, 0, 0))
screen.blit(player_health_text, (10, 10))

pygame.display.flip()

pygame.quit()
sys.exit()
```

With these fixes in place, the game should now run without errors.