here edit this code to make it like a platformer shooter game

```python
import pygame
import sys

# 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("Simple Platformer Game")

# Colors
black = (0, 0, 0)
white = (255, 255, 255)

# 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

# Game loop
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

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

screen.fill(white)
pygame.draw.rect(screen, black, (player_x, player_y, player_width, player_height))

pygame.display.flip()

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

```python

import pygame
import sys

# 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("Platformer Shooter Game")

# Colors
black = (0, 0, 0)
white = (255, 255, 255)

# 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

# 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:
is_shooting = True

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

screen.fill(white)
pygame.draw.rect(screen, black, (player_x, player_y, player_width, player_height))

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

pygame.display.flip()

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

ok now can you make another code for the background of this game and make sure that it looks like a waste land kinda thing

Here is the modified code with a background image that looks like a wasteland:

```python
import pygame
import sys

# 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("Platformer Shooter Game")

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

# 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

# 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:
is_shooting = True

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

screen.blit(background_image, (0, 0)) # Draw background image
pygame.draw.rect(screen, (255,255,255), (player_x, player_y, player_width, player_height)) # Draw player

if is_shooting:
pygame.draw.rect(screen, (255,255,255), player_bullet) # Draw player's bullet

pygame.display.flip()

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

In this code, I have added a background image called "wasteland.jpg" that is loaded and scaled to fit the screen. The background image is then drawn before drawing the player and player's bullets, creating a wasteland-themed game environment.

ok now add zombies for the player to defeat

Here's the updated code with zombies added for the player to defeat:

```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("Platformer Shooter Game")

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

# 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

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

# 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:
is_shooting = True

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:
zombies.append(pygame.Rect(random.randrange(screen_width - zombie_width), 0, zombie_width, zombie_height))
spawn_counter = 0

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

# Check collision with player's bullet
for zombie in zombies:
if player_bullet.colliderect(zombie):
zombies.remove(zombie)

# Check collision with player
for zombie in zombies:
if zombie.colliderect(pygame.Rect(player_x, player_y, player_width, player_height)):
running = False # Game over if player collides with a zombie

screen.blit(background_image, (0, 0)) # Draw background image
pygame.draw.rect(screen, (255, 255, 255), (player_x, player_y, player_width, player_height)) # Draw player

if is_shooting:
pygame.draw.rect(screen, (255, 255, 255), player_bullet) # Draw player's bullet

for zombie in zombies:
pygame.draw.rect(screen, (255, 0, 0), zombie) # Draw zombies

pygame.display.flip()

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

In this code, zombies are added with their properties such as size, speed, and spawn rate. The zombies move downwards on the screen and are removed upon collision with the player's bullet. If a zombie collides with the player, the game ends. The zombies are drawn as red squares on the screen.

ok last one make the starting screen look cool to match the vibe of the game and make the title have a animation when the player starts the game and also make the title have a death metal theme

Here's the updated code with a cool starting screen, animated title, and a death metal theme:

```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("Platformer Shooter Game")

# 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
title_font = pygame.font.Font('death_metal_font.ttf', 70) # Custom death metal font for the title

# 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

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

# Game state
game_state = "start"

# 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:
game_state = "playing"

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((0, 0, 0)) # Black background for start screen
title_text = title_font.render("DEATH METAL SHOOTER", True, (255, 255, 255))
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))

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:
zombies.append(pygame.Rect(random.randrange(screen_width - zombie_width), 0, zombie_width, zombie_height))
spawn_counter = 0

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

# Check collision with player's bullet
for zombie in zombies:
if player_bullet.colliderect(zombie):
zombies.remove(zombie)

# Check collision with player
for zombie in zombies:
if zombie.colliderect(pygame.Rect(player_x, player_y, player_width, player_height)):
running = False # Game over if player collides with a zombie

screen.blit(background_image, (0, 0)) # Draw background image
pygame.draw.rect(screen, (255, 255, 255), (player_x, player_y, player_width, player_height)) # Draw player

if is_shooting:
pygame.draw.rect(screen, (255, 255, 255), player_bullet) # Draw player's bullet

for zombie in zombies:
pygame.draw.rect(screen, (255, 0, 0), zombie) # Draw zombies

pygame.display.flip()

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

In this updated code, the starting screen features a cool title "DEATH METAL SHOOTER" with an animation effect that fades in and out. The title font is customized to match a death metal theme. Once the player presses space, the game transitions to the playing state where they can start shooting zombies in the wasteland environment.

now lASTY add the controls for every thing

Here's the final updated code with controls for the player movement and shooting in the Platformer Shooter game:

```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("Platformer Shooter Game")

# 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
title_font = pygame.font.Font('death_metal_font.ttf', 70) # Custom death metal font for the title

# 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

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

# Game state
game_state = "start"

# 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((0, 0, 0)) # Black background for start screen
title_text = title_font.render("DEATH METAL SHOOTER", True, (255, 255, 255))
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))

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:
zombies.append(pygame.Rect(random.randrange(screen_width - zombie_width), 0, zombie_width, zombie_height))
spawn_counter = 0

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

# Check collision with player's bullet
for zombie in zombies:
if player_bullet.colliderect(zombie):
zombies.remove(zombie)

# Check collision with player
for zombie in zombies:
if zombie.colliderect(pygame.Rect(player_x, player_y, player_width, player_height)):
running = False # Game over if player collides with a zombie

screen.blit(background_image, (0, 0)) # Draw background image
pygame.draw.rect(screen, (255, 255, 255), (player_x, player_y, player_width, player_height)) # Draw player

if is_shooting:
pygame.draw.rect(screen, (255, 255, 255), player_bullet) # Draw player's bullet

for zombie in zombies:
pygame.draw.rect(screen, (255, 0, 0), zombie) # Draw zombies

# Display controls
controls_font = pygame.font.Font(None, 30)
controls_text = controls_font.render("Movement: Left / Right Arrows | Shoot: Space", True, (255, 255, 255))
screen.blit(controls_text, (10, 10))

pygame.display.flip()

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

In this code, controls are displayed on the screen for the player to understand how to move left and right using the arrow keys and how to shoot using the space key. The controls are shown while in the playing state of the game, allowing the player to easily navigate and interact with the game environment.

ok and add a big zombie boss called the zombie king thats not to hard for the player to beat and he will spawn mini zombies (like 3) to fight the player and make the game have 20 different lvls that you can deign if you want