如何用空白鍵射擊子彈?
在你的程式碼中,按下空白鍵時玩家的消失是可能是由於射擊和球員移動的循環不同。若要解決此問題,請將這兩個操作合併到主應用程式循環中。
對於子彈發射,請使用清單(例如,bullet_list)來儲存子彈位置。發射時,將發射子彈的物件的起始位置加入清單。迭代項目符號列表,更新每個項目符號的位置並刪除任何離開畫面的項目符號。
儘管 y
此外,在主應用程式循環中實作事件處理以擷取按鍵操作。使用 pygame.key.get_pressed() 不斷取得按鍵的狀態。根據按鍵,更新玩家的位置並觸發子彈發射。
以下是包含這些修復的修訂後的程式碼片段:
<code class="python">bullets = [] while True: # Event handling for event in pygame.event.get(): pass if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: bullets.append(Bullet(p.x+p.width//2, p.y)) if event.key == pygame.K_LEFT: p.move_left() if event.key == pygame.K_RIGHT: p.move_right() # 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 win.update()</code>
以上是如何在 Pygame 中修復玩家消失並使用空白鍵實現子彈射擊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!