"Bermain ialah cara pembelajaran kegemaran otak kita" - Diane Ackerman
Pembangunan permainan boleh menjadi cara yang menyeronokkan dan bermanfaat untuk menggunakan kemahiran pengaturcaraan. Pygame, perpustakaan popular untuk Python, menyediakan rangka kerja yang mudah tetapi berkuasa untuk mencipta permainan 2D. Dalam artikel ini, kami akan meneroka cara membina permainan asas menggunakan Pygame. Projek ini akan memperkenalkan anda kepada konsep utama dalam pembangunan permainan, seperti mengendalikan input pengguna, mengemas kini keadaan permainan dan memaparkan grafik.
Anda boleh memasang Pygame menggunakan pip
pip pasang pygame
Kami akan mencipta permainan di mana pemain menggerakkan bakul ke kiri dan kanan untuk menangkap objek yang jatuh. Permainan akan menjejaki markah, meningkatkannya setiap kali objek ditangkap.
import pygame import random import sys class CatchTheFallingObjectsGame: def __init__(self): # Initialize Pygame pygame.init() # Set up display self.width, self.height = 800, 600 self.window = pygame.display.set_mode((self.width, self.height)) pygame.display.set_caption("Catch the Falling Objects") # Define colors self.white = (255, 255, 255) self.black = (0, 0, 0) self.red = (255, 0, 0) # Set up player self.player_size = 100 self.player_pos = [self.width // 2, self.height - 50] self.player_speed = 10 # Set up falling objects self.object_size = 50 self.object_pos = [random.randint(0, self.width - self.object_size), 0] self.object_speed = 5 # Set up game variables self.score = 0 self.font = pygame.font.SysFont("monospace", 35) def handle_events(self): for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() def update_player_position(self): keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and self.player_pos[0] > 0: self.player_pos[0] -= self.player_speed if keys[pygame.K_RIGHT] and self.player_pos[0] < self.width - self.player_size: self.player_pos[0] += self.player_speed def update_object_position(self): self.object_pos[1] += self.object_speed if self.object_pos[1] > self.height: self.object_pos = [random.randint(0, self.width - self.object_size), 0] def check_collision(self): if (self.player_pos[0] < self.object_pos[0] < self.player_pos[0] + self.player_size or self.player_pos[0] < self.object_pos[0] + self.object_size < self.player_pos[0] + self.player_size): if self.player_pos[1] < self.object_pos[1] + self.object_size < self.player_pos[1] + self.player_size: self.score += 1 self.object_pos = [random.randint(0, self.width - self.object_size), 0] def draw_elements(self): self.window.fill(self.black) pygame.draw.rect(self.window, self.white, (self.player_pos[0], self.player_pos[1], self.player_size, 20)) pygame.draw.rect(self.window, self.red, (self.object_pos[0], self.object_pos[1], self.object_size, self.object_size)) score_text = self.font.render("Score: {}".format(self.score), True, self.white) self.window.blit(score_text, (10, 10)) pygame.display.flip() def run(self): clock = pygame.time.Clock() while True: self.handle_events() self.update_player_position() self.update_object_position() self.check_collision() self.draw_elements() clock.tick(30) if __name__ == "__main__": game = CatchTheFallingObjectsGame() game.run()
Kelas Permainan CatchTheFallingObjects: Kelas ini merangkumi semua logik dan keadaan permainan. Ia menyusun permainan ke dalam kaedah yang mengendalikan pelbagai aspek permainan, menjadikan kod modular dan lebih mudah untuk diurus.
Kaedah init:
mengendalikan_acara:
kemas kini_kedudukan_pemain:
kemas kini_kedudukan_objek:
check_collision:
elemen_lukisan:
Kaedah jalankan:
Pengawal Utama:
Jika name == "utama": blok memastikan bahawa permainan hanya dilaksanakan apabila skrip dijalankan secara langsung, amalan Python biasa untuk membenarkan kod diimport tanpa melaksanakan yang utama gelung permainan.
Setelah anda menguasai asas membina permainan mudah dengan Pygame, pertimbangkan untuk menghadapi beberapa cabaran tambahan untuk meningkatkan kemahiran anda dan menjadikan permainan anda lebih menarik:
Ini hanyalah permulaan pengembaraan pembangunan permainan anda menggunakan python. Teruskan meneroka, mencuba dan menolak sempadan kreativiti anda. Dunia pengaturcaraan adalah luas dan sentiasa berkembang, dan sentiasa ada sesuatu yang baharu untuk dipelajari dan ditemui. Selamat mengekod !
NOTA: ini ditulis dengan bantuan AI
Atas ialah kandungan terperinci Pembangunan Permainan dengan Pygame. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!