參加 Hacktoberfest 對我來說是一次令人興奮且有益的旅程,因為我有機會為有意義的開源專案做出貢獻,同時磨練我的技能。今年,在我的第三個 Pull Request 中,我選擇為一個比我的前 2 個 PR 更複雜的專案做出貢獻,它就是 ZTM-Quest 儲存庫。
ZTM-Quest 是零到精通學院的一部分,該學院是一個幫助開發人員提高技能和建立實際專案的平台。該專案本身是一個引人入勝的互動式網路應用程序,允許用戶完成任務,提高他們的編碼能力。在這篇部落格中,我將向您介紹我在ZTM-Quest 儲存庫上工作的經驗、我面臨的挑戰、我學到的東西,以及我如何成功完成Hacktoberfest 的第三個PR
本週,我解決了一個問題,重點是透過向 map_start 添加額外的 NPC(不可玩角色)來增強 ZTM-Quest 專案。目前,該專案每張地圖的 NPC 數量有限,維護者希望進一步填充 map_start 區域。幸運的是,該專案已經包含了一些隨機產生 NPC 的程式碼,這為我提供了一個堅實的起點。此外,維護人員建議我可以使用自己的 spritesheet 建立自訂 NPC,但考慮到程式碼庫的複雜性和大小,我決定繼續使用現有資源來更有效地滿足專案需求。
ZTM-Quest 計畫由三張地圖組成:map_arcade、map_city 和 map_start。對於這個問題,我只專注於map_start以符合維護者的要求。作為一個以前從未使用過 2D 遊戲開發庫的人,我最初發現這項任務令人畏懼。然而,由於維護者的指導和詳細說明,我能夠瀏覽程式碼庫並識別與任務相關的關鍵文件和結構。
我首先探索了 src/factories/npc.factory.js 文件,其中定義了 NPC 創建邏輯。從那裡開始,我透過在 src/gameObjects/map_start 目錄中建立一個名為 randNpcsOnRestroomSinkCouch.gameObject.js 的檔案來新增一個新的 NPC。我最初的實作僅將 NPC 放置在一個位置(椅子),但經過進一步審查,我意識到維護者打算讓它們在地圖上更動態地分佈。為了解決這個問題,我利用代碼編輯器中的搜尋功能來識別其他相關位置,例如水槽、沙發和洗手間。
根據這些識別出的物體在地圖上的位置,我添加了兩個站在水槽附近的NPC,兩個坐在沙發上的NPC,以及三個位於洗手間區域的NPC,從而在map_start 中創建了一個更生動、更互動性的環境。
我的公關
解決這個問題讓我對開源社群和遊戲開發有了寶貴的見解。 ZTM-Quest 維護人員提供了令人難以置信的支援和專業,提供及時的回饋和資源來幫助我取得成功。當我第一次加入這個專案時,我被邀請加入他們的 Discord 小組,每當我有問題時我都可以在那裡聯繫。這使得體驗變得更加愉快和協作。
總的來說,這週讓我走出了舒適區,因為我在一個我以前沒有經驗的領域——2D 遊戲開發中接受了挑戰。儘管最初的學習曲線很困難,但我對在複雜的專案中瀏覽不熟悉的程式碼庫和解決問題有了信心。當我期待完成 Hacktoberfest 的最終 PR 時,我的目標是繼續探索新的發展領域以擴大我的技能。
以上是開源成就:在 Hacktoberfest 中完成我的第三個 PR的詳細內容。更多資訊請關注PHP中文網其他相關文章!