切換
舊版
前往
大廳
主題

遊戲中的多邊形碰撞檢測-後續1

Beadx6 | 2017-10-18 02:18:46 | 巴幣 20 | 人氣 602

看完原文後,也許大家會好奇這個東西能做什麼,最近剛好有做出一點點成果。

兩個矩型的碰撞與回饋,這大概就是正常2D平面遊戲會用到的檢測與碰撞回饋,其中一個方法 :



如果地形有斜坡或是奇葩的形狀的話,就有可能使用到本文所介紹的SAT多邊形碰撞檢測,看起來就會像這樣 :

有種開破冰船的感覺。

然後只要設定哪些物體是地形,哪些是可移動物體,就可以做出推箱子之類的效果


這兩張是別人的範例

雖然不全都用這種這種方法,但有些遊戲直接透過像素檢測,也有些是用網格的界線來分辨等等的...,看狀況使用吧。



而關於碰撞後的各種效果的話,可能要等很久之後了,物理模擬的背後原理太多了,不知什麼時候才能做出來。

目前只有做出基本的彈性碰撞,碰撞後會根據兩球不同的碰撞角度、質量大小、力的方向來做反應,附上幾張簡易成果:

兩質量相同的物體,在無摩擦力的狀況下,碰撞後動量會完全轉移 :



隨著碰撞角度的改變,也會有不同的反應 :



多顆球的彈性碰撞:



而多邊形的彈性碰撞牽扯的有點多,還要處理角動量、質心位置等等...的問題,現在的能力還不太夠,也許之後會繼續完成吧。

此圖為matter.js範例



上面的兩個單元"碰撞回饋"、"彈性碰撞",之後有機會可能會再多寫兩篇文章來像原文那樣講解吧

在這發文主要是希望我能持續寫文章,反正有人推就有ㄊㄓ,這樣每次收到後可能就有一些動力來繼續寫文章吧,雖然沒ㄊㄓ還是會寫下去,但我想你也懂,文章發表後收到回饋的感覺就是不一樣。


Collision-MTV Github : https://github.com/md9830415/Collision-MTV
Collision-Elastic Github : https://github.com/md9830415/Collision-Elastic
我的網站 : 點擊前往



創作回應

LOVe高橋李依
第一個因為點進小屋看到這篇文的xd
我在之前的版也有看過你的碰撞文
總之都很實用跟生動
感謝
2017-10-23 00:01:05
Beadx6
謝謝
2017-10-23 00:13:30
LOVe高橋李依
想問個問題
你說要處理角動量,質量問題
也就是說不能只學些程式?
連物理基礎也要有?
2017-10-23 00:02:23
Beadx6
是這樣沒錯,還有很多要學,等我哪天做出來了,會再寫篇文章放上來
2017-10-23 00:14:33
貓貓風 ฅ●ω●ฅ
看起來很好玩 owo
2018-10-19 15:12:38
Beadx6
有寫出來就覺得很好玩,寫不出來的時候就覺得自己怎麼那麼費,QQ
2018-10-19 20:17:55
LOVe高橋李依
欸原來我來過了XDD
剛進你小屋說怎麽有種來過i的感覺
2019-12-17 14:50:52
Beadx6
原來你有來留言過 LOL
2019-12-17 19:38:23

更多創作