Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Melaksanakan Tembakan Peluru dengan Bar Ruang dalam Pygame?
Panduan ini menangani pelaksanaan tembakan peluru dengan bar ruang dalam program Pygame.
Pengendalian Bullet
Simpan kedudukan peluru dalam senarai (bullet_list). Apabila peluru dilepaskan, tambahkan kedudukan permulaannya ([start_x, start_y]) pada senarai. Kemas kini kedudukan peluru dalam senarai. Alih keluar sebarang peluru yang meninggalkan skrin.
Interaksi Pemain dan Peluru
Kemas kini dan lukis objek secara berterusan dalam gelung aplikasi utama. Kelas Bullet harus mempunyai kaedah untuk memulakan, mengemas kini dan melukis peluru.
Tentukan kelas untuk Bullet dan Player:
<code class="python">class Bullet: def __init__(self, x, y): # Initial properties self.x = x self.y = y self.radius = 10 self.speed = 10 def update(self): # Move the bullet self.y -= self.speed def draw(self): # Draw the bullet pygame.draw.circle(d, (255, 0, 0), (self.x, self.y), self.radius) class Player: def __init__(self, x, y, height, width): # Initial properties self.x = x self.y = y self.height = height self.width = width self.speed = 2 def draw(self): # Draw the player pygame.draw.rect(d, (0, 0, 0), (self.x, self.y, self.width, self.height)) def move_left(self): # Move player left self.x -= self.speed def move_right(self): # Move player right self.x += self.speed</code>
Mulakan permainan, tentukan objek dan masukkan gelung utama. Kendalikan peristiwa, kemas kini objek, kosongkan paparan, lukis pemandangan dan kemas kini paparan dalam setiap bingkai:
<code class="python"># Initialize game pygame.init() clock = pygame.time.Clock() d = pygame.display.set_mode((1200, 600)) # Define objects bullets = [] p = Player(600, 500, 50, 30) # Main loop run = True while run: # Handle events for event in pygame.event.get(): if event.type == pygame.QUIT: run = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: bullets.append(Bullet(p.x + p.width // 2, p.y)) # Update objects keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: p.move_left() if keys[pygame.K_RIGHT]: p.move_right() for b in bullets: b.update() if b.y < 0: bullets.remove(b) # Clear display d.fill((98, 98, 98)) # Draw scene for b in bullets: b.draw() p.draw() # Update display pygame.display.update() clock.tick(100)</code>
Dengan pendekatan ini, anda boleh menembak peluru dengan berkesan menggunakan bar ruang sambil mengekalkan kedua-dua pemain dan peluru pada skrin.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Tembakan Peluru dengan Bar Ruang dalam Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!