Home Programming Creating a Basic Shooting Game in Python

Creating a Basic Shooting Game in Python

139
0
Shooting Game
Shooting Game

In the realm of Python game development, Pygame stands out as a powerful tool for crafting engaging and interactive gaming experiences. In this article, we delve into the intricacies of Pygame by constructing a dynamic shooting game from scratch. Brace yourself as we embark on an exhilarating journey into the realm of game programming mastery.

reate a simple shooting game using Python and Pygame. In this game, the player controls a character that shoots bullets to destroy enemy targets. Here’s a step-by-step guide:

1. Install Pygame: If you haven’t already, you need to install Pygame. You can do this using pip:

pip install pygame

2. Set Up the Game Window: Initialize Pygame and set up the game window.

3. Create the Player Character: Create a player character that can move horizontally and shoot bullets.

4. Create Enemy Targets: Generate enemy targets that move downwards and can be destroyed by the player’s bullets.

5. Handling Collisions: Detect collisions between bullets and enemy targets.

6. Display Score: Keep track of the player’s score.

Here’s the code for the shooting game:

import pygame
import random

# Initialize Pygame
pygame.init()

# Set up the game window
window_width = 600
window_height = 400
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption('Shooting Game')

# Colors
WHITE = (255, 255, 255)
RED = (255, 0, 0)
BLUE = (0, 0, 255)

# Player settings
player_width = 50
player_height = 50
player_x = window_width // 2 - player_width // 2
player_y = window_height - player_height - 10
player_speed = 5

# Bullet settings
bullet_width = 5
bullet_height = 15
bullet_speed = 7
bullets = []

# Enemy settings
enemy_width = 50
enemy_height = 50
enemy_speed = 3
enemies = []

# Score
score = 0
font = pygame.font.SysFont(None, 30)

# Function to draw player
def draw_player(x, y):
    pygame.draw.rect(window, RED, (x, y, player_width, player_height))

# Function to draw bullets
def draw_bullet(x, y):
    pygame.draw.rect(window, BLUE, (x, y, bullet_width, bullet_height))

# Function to draw enemies
def draw_enemy(x, y):
    pygame.draw.rect(window, WHITE, (x, y, enemy_width, enemy_height))

# Function to display score
def show_score():
    score_text = font.render("Score: " + str(score), True, WHITE)
    window.blit(score_text, (10, 10))

# Main game loop
running = True
while running:
    window.fill((0, 0, 0))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Player movement
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and player_x > 0:
        player_x -= player_speed
    if keys[pygame.K_RIGHT] and player_x < window_width - player_width:
        player_x += player_speed

    # Shoot bullets
    if keys[pygame.K_SPACE]:
        bullet_x = player_x + player_width // 2 - bullet_width // 2
        bullet_y = player_y
        bullets.append([bullet_x, bullet_y])

    # Move bullets
    for bullet in bullets:
        bullet[1] -= bullet_speed

    # Move enemies
    if len(enemies) < 5: # Limit number of enemies on the screen enemy_x = random.randint(0, window_width - enemy_width) enemy_y = -enemy_height enemies.append([enemy_x, enemy_y]) for enemy in enemies: enemy[1] += enemy_speed # Collision detection for bullet in bullets: for enemy in enemies: if (bullet[0] >= enemy[0] and bullet[0] <= enemy[0] + enemy_width) and \ (bullet[1] >= enemy[1] and bullet[1] <= enemy[1] + enemy_height):
                bullets.remove(bullet)
                enemies.remove(enemy)
                score += 1

    # Draw everything
    for bullet in bullets:
        draw_bullet(bullet[0], bullet[1])

    for enemy in enemies:
        draw_enemy(enemy[0], enemy[1])

    draw_player(player_x, player_y)
    show_score()

    pygame.display.update()
    pygame.time.delay(30)

pygame.quit()

This code sets up a simple shooting game where the player can move left and right using the arrow keys and shoot bullets using the spacebar. Enemies randomly appear at the top of the screen and move downwards. If a bullet hits an enemy, both the bullet and the enemy are destroyed, and the player’s score increases.

<meta name=”description” content=”Explore the realm of Python game development with our comprehensive shooting game tutorial using Pygame. Learn to craft dynamic player characters, unleash volleys of bullets, and engage in adrenaline-fueled battles against formidable enemies. Master Pygame essentials and elevate your game development skills to new heights.”>