Re: [問題]音速小子的行為模式

看板GameDesign (遊戲設計)作者 (Victor)時間18年前 (2006/06/04 13:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/14 (看更多)
※ 引述《StubbornLin (Victor)》之銘言: : ※ 引述《etrexetrex (ETREX)》之銘言: : 判斷目前的速度v在經過了一段很短的時間後的下一刻 : 這段時間是Δt,在經過Δt的路線上 : 是否會穿過某樣物體,而這個Δt,就是上次更新和這次更新的時間差 : 新的的座標位置 : y = y + vy*Δt; : 新的速度 : vy = vy + g*Δt; : 作法是,目前的座標,和下一刻的座標,兩點間的連線 : 看是否會交某個物件 : 如果不會穿過某樣物體,也就是沒有碰撞,就讓它繼續往下掉 : 如果會穿過某樣物體,就要進行碰撞的運算 : 這要看你的的球是否要給它彈性的特性,在這裡我們假設它沒有彈性 : 也就是掉下去就不會再彈起來 : 接著,你只要找出Δt內行進路線裡,最先與物體接觸的那點 : 把球的位置設在那點上面,這樣應該就OK了 修正一下,應該要這樣說,碰撞到的那一點,的法向量,也就是 垂直於那個表面的方向,給與一個這顆球在這個法向量方向上面等同大小的反作用力 就可以抵消,簡單的來講,就是那個方向的速度歸0 這樣來做應該才比較正確,因為如果是x方向碰撞到,只有x方向的速度歸0 而y還會繼續往下掉 ● 當撞到的一瞬間,速度在法線項量要抵消掉 ↓ ↑ 法線向量 ----------------------------------- 就算表面是斜的,一樣也是法向量速度歸0 -- VICTOR工作室 | PTT遊戲設計版隆重開幕! | 不管是新手老手,程式美工音樂企劃.... URL : http://www.kinmen.info/vic/ | 都歡迎來遊戲設計版參與討論 XD | 戰略高手> C/C++ | GameTopics> Visual Basic 6.0 | GameDesign -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.65.9
文章代碼(AID): #14WczAXT (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #14WczAXT (GameDesign)