正在用JavaScript+Canvas實現一個打磚塊游戲,碰撞算法參考的實現思路是https://www.zhihu.com/questio...現在的問題是檢測到小球與矩形方塊碰撞后 怎么判斷小球接下來的運動方向?我認為這里有兩種情況 第一種是從上下左右四個邊撞擊 然后讓小球一個方向(比如x軸)上的速度值不變 讓另一個方向(比如y軸)的速度取負數 這樣小球就有一個反彈的效果了(類似于鏡面反彈)第二種情況我覺得應該是從四個角撞擊 這個時候就應該把兩個方向的速度都取負值 小球就會向運動來的方向“彈回去”第一種情況很好實現,,關鍵是第二種情況該怎么判斷呢? 我不知道該用什么來判斷小球是否是撞擊的四個角如果思路不對 請指正。。/2017-8-10更新/利用我在評論里發現的那種夾角的辦法把判斷邊和角撞擊實現了。。但是新的問題是 我是在移動小球位置之后才判斷是否碰撞的 有的時候會出現小球的位置已經在磚塊里面去了 才去判斷撞擊 這樣就會形成死循環在小球在磚塊內不停運動的鬼畜效果。。。然后我查到一個叫“分離軸定理”的算法,,貌似可以判斷這個“最小平移量” http://blog.mn886.net/chenjia...http://web.jobbole.com/90472/但是這兩個鏈接里的代碼看不太懂。。有大神能簡單用js寫寫利用分離軸定理來實現矩形與圓碰撞的算法么。。包括碰撞以后反彈的效果(也就是沿著最小平移量的反方向)
打磚塊游戲中 怎么判斷小球與方塊撞擊后運動的方向呢?
喵喵時光機
2018-12-05 18:14:35