看板 Flash 關於我們 聯絡資訊
jyhfeng:我是有把位置各減一半的長寬,不過撞擊旋轉後就會跑掉,比如 05/29 12:57
jyhfeng:轉45度,原本的長寬,跟旋轉後的長寬是不一樣的(從左上角 05/29 12:58
jyhfeng:為基點來看) 05/29 12:58
以下為不負責任數學推導(未經實際測試) 令Box2DBody中心為(Cx, Cy)、旋轉角度 為T (in radians) 寬度為 W 高度為 H DisplayObject左上角座標為(X, Y) 旋轉矩陣 M(t) = | cos(t) -sin(t) | | sin(t) cos(t) | 則 | X | = M(T) * | -0.5 * W | + | Cx | | Y | | -0.5 * H | + | Cy | 所以 hw = 0.5 * obj.width; hh = 0.5 * obj.height; t = body.rotation * Math.PI / 180; obj.x = Math.cos(t) * -hw + Math.sin(t) * hh + body.x; obj.y = Math.sin(t) * -hw - Math.cos(t) * hh + body.y; obj.rotation = body.rotation; -- Blog http://blog.cjcat.net Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 72.5.59.140
jyhfeng:感謝....雖然我還是看不太懂,畢竟三角函數都還回去了 06/06 16:50
jyhfeng:不過我還是有找到高手寫好的類別可以使用 06/06 16:51
jyhfeng:相關網址我貼在原發帖子裡面,感謝回應 06/06 16:54
jyhfeng:cjcat大的解法也可以,驗證過了...多謝cjcat 06/06 17:06