本指南介紹了在 Pygame 程式中使用空格鍵發射子彈的實作。
子彈處理
儲存子彈清單中的位置 (bullet_list)。當子彈發射時,將其起始位置 ([start_x, start_y]) 新增至清單。更新清單中項目符號的位置。刪除離開螢幕的所有子彈。
玩家和子彈互動
在主應用程式循環中持續更新和繪製物件。 Bullet 類別應該具有初始化、更新和繪製子彈的方法。
為 Bullet 和 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>
初始化遊戲,定義對象,進入主循環。處理事件、更新物件、清除顯示、繪製場景並更新每個畫面中的顯示:
<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>
透過此方法,您可以使用空格鍵有效地發射子彈,同時保持玩家和彈頭的狀態在螢幕上。
以上是如何在 Pygame 中使用空白鍵實現子彈射擊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!