Re: [問題]音速小子的行為模式
看板GameDesign (遊戲設計)作者StubbornLin (Victor)時間18年前 (2006/06/04 13:27)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
16
32
10
14