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