魔性“合成大西瓜”背后,我用 350 行代碼解開了碰撞之謎!
作者:admin
閱讀量:887
2021-02-27 14:17:27
年前我看到合成大西瓜小游戲火了,想到之前從來沒有研究過游戲方面的開發,這次就想趁著這個機會看看 JavaScript 游戲開發,從原生角度上如何實現游戲里的物理特性,例如運動、碰撞。雖然之前研究過物理相關的動畫庫,但是我打算試試不用框架編寫一個簡單的 JavaScript 物理引擎,實現小球的碰撞效果。
為什么不用現成的游戲庫呢?因為我覺得在了解底層的實現原理之后,才能更有效的理解框架上的概念和使用方法,在解決 Bug 的時候能夠更有效率,同時對自己的編碼技能也是一種提升。在對 JavaScript 物理引擎的研究過程中,發現寫代碼是次要的,最主要的是理解相關的物理、數學公式和概念,雖然我是理科生,但是數學和物理從來不是我的強項,我不是把知識還給老師了,而是壓根就沒掌握過 ^o^。因此在本文開始前,我花了小半個月的時間在學習物理知識上,現在仍然對某些概念和推導過程沒有太大的自信,不過最后還算是做出了一個簡單的、比較滿意的結果(不知道過程對不對,反正結果對了= =),見下圖。