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
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.
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.
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.
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!