Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Letupan dari Masa Lalu: Bina Permainan Penyerbu Angkasa Anda Sendiri dengan Python - Tutorial Langkah demi Langkah

Letupan dari Masa Lalu: Bina Permainan Penyerbu Angkasa Anda Sendiri dengan Python - Tutorial Langkah demi Langkah

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-09-19 20:15:13665semak imbas

Blast from the Past: Build Your Own Space Invaders Game with Python - A Step-by-Step Tutorial

Sediakan Persekitaran Pembangunan Anda

Sebelum menyelam ke dalam pengekodan Space Invaders menggunakan Python, pastikan persekitaran pembangunan anda disediakan dengan betul. Anda memerlukan Python dipasang pada mesin anda. Python 3.8 atau lebih tinggi disyorkan untuk keserasian yang lebih baik dengan perpustakaan. Selain itu, pasang Pygame, iaitu satu set modul Python yang direka untuk menulis permainan video. Pygame menyediakan fungsi seperti mencipta tetingkap, menangkap acara tetikus dan memaparkan elemen grafik, yang penting untuk pembangunan permainan.

Pasang Python dan Pygame dengan arahan berikut:

# Install Python (if not already installed)
sudo apt-get install python3.8

# Install Pygame
pip install pygame

Memulakan Tetingkap Permainan

Mulakan dengan mencipta fail Python bernama space_invaders.py. Fail ini akan mengandungi semua kod yang diperlukan untuk permainan kami. Mula-mula, mulakan tetingkap permainan menggunakan Pygame. Saiz tetingkap boleh ditetapkan kepada 800x600 piksel, yang mencukupi untuk memuatkan semua elemen permainan dengan selesa.

import pygame
import sys

# Initialize Pygame
pygame.init()

# Set up the display
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))

# Set the title of the window
pygame.display.set_caption('Space Invaders')

# Game loop
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # Update the display
    pygame.display.update()

Kod ini memulakan Pygame dan menyediakan tetingkap 800x600 piksel. Gelung while True: ialah gelung permainan, iaitu gelung tak terhingga di mana semua acara diproses dan keadaan permainan dikemas kini dan dipaparkan pada skrin. Fungsi pygame.event.get() digunakan untuk mengendalikan acara seperti menutup tetingkap permainan.

Mencipta Kapal Angkasa Pemain

Seterusnya, tambahkan kapal angkasa pemain pada permainan. Buat imej untuk kapal angkasa dan letakkan di bahagian tengah bawah tetingkap permainan. Anda boleh menggunakan mana-mana imej PNG mudah untuk kapal angkasa. Muatkan imej ini dalam permainan anda dan kawal pergerakannya dengan input papan kekunci.

# Load the spaceship image
spaceship_img = pygame.image.load('spaceship.png')
spaceship_x = 370
spaceship_y = 480
spaceship_speed = 0.3

def player(x, y):
    screen.blit(spaceship_img, (x, y))

# Game loop
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        # Event handling for moving the spaceship
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                spaceship_x -= spaceship_speed
            if event.key == pygame.K_RIGHT:
                spaceship_x += spaceship_speed

    # Rendering the player's spaceship
    player(spaceship_x, spaceship_y)
    pygame.display.update()

Fungsi pemain bertanggungjawab untuk melukis kapal angkasa pada koordinat (kapal angkasa_x, kapal angkasa_y). Pergerakan kapal angkasa dikawal oleh kekunci anak panah kiri dan kanan. Melaraskan pembolehubah spaceship_x menggerakkan kapal angkasa secara mendatar.

Menambah Musuh

Untuk menambah musuh pada permainan, buat berbilang kejadian imej musuh. Letakkannya secara rawak pada skrin dan buat mereka bergerak ke arah pemain. Buat senarai untuk menyimpan kedudukan dan kelajuan setiap musuh untuk pengurusan yang lebih mudah.

import random

# Enemy setup
enemy_img = pygame.image.load('enemy.png')
enemy_info = [{'x': random.randint(0, 736), 'y': random.randint(50, 150), 'speed_x': 0.2, 'speed_y': 40} for _ in range(6)]

def enemy(x, y):
    screen.blit(enemy_img, (x, y))

# Game loop
while True:
    # Other game loop code omitted for brevity
    # Move and render enemies
    for e in enemy_info:
        enemy(e['x'], e['y'])
        e['x'] += e['speed_x']
        if e['x'] <= 0 or e['x'] >= 736:
            e['speed_x'] *= -1
            e['y'] += e['speed_y']
    pygame.display.update()

Setiap musuh bergerak secara mendatar sehingga mencecah tepi skrin, pada ketika itu ia bergerak sedikit ke bawah dan membalikkan arah.

Kesimpulan

Tutorial ini telah merangkumi penyediaan persekitaran Python anda, memulakan tetingkap Pygame, mencipta dan mengawal kapal angkasa pemain dan menambah musuh dengan gerakan asas. Asas ini menetapkan peringkat untuk peningkatan lanjut seperti menambah keupayaan penangkapan, pengesanan perlanggaran, pemarkahan dan banyak lagi. Setiap elemen memperkenalkan cabaran dan peluang pembelajaran baharu, yang berkemungkinan memerlukan pengoptimuman dan penambahbaikan untuk meningkatkan prestasi permainan dan pengalaman pemain.

Atas ialah kandungan terperinci Letupan dari Masa Lalu: Bina Permainan Penyerbu Angkasa Anda Sendiri dengan Python - Tutorial Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Memahami Modul heapq PythonArtikel seterusnya:Memahami Modul heapq Python