」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使玩家在遊戲中射擊子彈,同時保持玩家可見?

如何使玩家在遊戲中射擊子彈,同時保持玩家可見?

發佈於2025-02-22
瀏覽:818

How to Make a Player Shoot Bullets in a Game While Keeping the Player Visible? 
用太空欄射擊子彈

這個問題涉及在按下太空欄時實現射擊子彈的能力,同時在屏幕上保持玩家角色。 &&&&

問答代碼最初存在一個問題,在拍攝時,播放器角色消失了。這是因為將射擊和玩家運動分為不同的循環。為了解決這個問題,我們需要將它們合併為單個主循環,在該循環中同時更新兩種行為。

另一個問題是當子彈到達屏幕頂部時,無法打破射擊環。原始代碼使用了一段段循環,該循環持續了無限。為了解決此問題,我們需要使用一個wire循環,該循環的條件可以檢查子彈是否已達到頂部。

代碼dimendanation

這是代碼的修訂版本:

導入pygame,OS #簡潔的樣板設置 班級球員: def __init __(self,x,y,高度,寬度): ... def draw(self): ... def move_left(self): ... def move_right(self): ... 班級子彈: def __init __(self,x,y): ... def Update(self): ... def draw(self): ... #子彈清單 子彈= [] #初始化播放器 p =球員(600、500、50、30) #主遊戲循環 運行= true 運行時: clock.tick(100) #處理事件 對於pygame.event.get()中的活動: 如果event.type == pygame.quit: run = false 如果event.type == pygame.keydown: 如果event.key == pygame.k_space: Bullets.Append(子彈(P.X P.Width // 2,P.Y)) #更新對象 鍵= pygame.key.get_presse() 如果鍵[pygame.k_left]: p.move_left() 如果鍵[pygame.k_right]: p.move_right() 對於子彈中的B: b.update() #更新位置並在屏幕外刪除子彈 如果B.Y< 0: 子彈。 #更新框架 D.Fill((98,98,98)) 對於子彈中的B: B.Draw() p.draw() win.update()

鍵更改:

現在,拍攝和播放器運動邏輯被合併到一個主遊戲循環中。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3