亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

打磚塊游戲中 怎么判斷小球與方塊撞擊后運動的方向呢?

打磚塊游戲中 怎么判斷小球與方塊撞擊后運動的方向呢?

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

1 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

得到最短距離矢量后可以進一步得到 "碰撞點",即 矢量p - 矢量u 得到的點。在角上碰撞的時候,這個碰撞點也應該在矩形的角上。

另外 "小球就會向運動來的方向彈回去" 這個和生活經驗是不一致的,可以試試朝桌腳滾一個球看看。你可能需要再想一下球的受力和運動情況。


查看完整回答
反對 回復 2019-01-14
  • 1 回答
  • 0 關注
  • 907 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號