Re: [問題]音速小子的行為模式
看板GameDesign (遊戲設計)作者etrexetrex (ETREX)時間18年前 (2006/06/04 23:44)推噓0(0推 0噓 0→)留言0則, 0人參與討論串13/14 (看更多)
※ 引述《ddavid (星舞絃獨角獸神話憶)》之銘言:
: ※ 引述《etrexetrex (ETREX)》之銘言:
: : 這樣會有另一個問題
: : 我先只講Y
: : dy是Y的速度
: : 主時間軸
: : {
: : 計算dy;
: : if(落地)
: : dy=0;
: : y+=dy;
: : }
: : 問題是當地面平坦時
: : 落地之後即使按↑鍵去影響dy
: : dy還是會被歸零
: : 因為他在移動之前是接觸著地面的狀態
: : 囧
: : 這讓我不曉得怎麼作跳躍的功能
: 直接歸零太特例化了吧?應該是在接觸時,給予一個反作用力。比如:
: ○
: ↓ 2
: ───────────
: ↑ 2
: 撞擊時,地面送回一個同樣是2的反作用力,但因為視為人體由骨骼肌肉吸收掉
: 所以不會彈起,也只有這時候會發生那個反作用力。但你按上時,你並沒有對地面施
: 以正向力(就人體跳躍機制當然是有,先不管那麼多),所以並沒有產生什麼該被吸
: 收掉的反作用力,不應該歸零。簡單的說,就是在對地面有施與正向力時,才針對該
: 反作用力歸零。又比如斜面時:
: / 2^(1/2)
: 2 / /
: / ─→ 2
: ○→/ \
: / 2^(1/2)
: /
: /
: 只有朝右下方的分力對於地面是正向力,所以會給回一個往左上的2^(1/2)力量
: ,也只有這個力是被人體吸收掉歸零的,而往右上的力保持使得出現爬上斜坡的情況
: 。而腳不會打滑是因為地心引力持續作用所以正向力一直會有,也就有磨擦力。爬到
: 越陡之處,對地面的正向力分量就越小,磨擦力越來越不足而被地心引力往左下的分
: 量打敗所以才會滑下來。
: 看要做到多細就把整個機制的越多東西省略這樣,反之影響較小或遊戲設定不需
: 要的東西就不鳥或省略掉就好了。
現在演算法知道了
但是有一個很大的問題就是如何判斷撞擊的角度是多少?
在FLASH裡面有個 MC.HitTest(X,Y) 的函數
可以判斷MC是否碰觸到(X,Y)
函數的結果是布林值 (true or false)
我只想到一個很蠢的方法
就是用一個回圈去計算球的圓周軌跡(X,Y)
然後每一個影格都去判斷 MAP是否碰觸到 軌跡N個點
通常每秒30影格
若軌跡用360個點
每秒就要做30*360次的IF判斷
但是這應該是很浪費CPU的做法
請問用什麼方法才可以有效的計算出撞擊時的角度(地面凹凸不平時)
--
無名網誌:http://www.wretch.cc/blog/et284vu065k3
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.125.108
討論串 (同標題文章)
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
16
32
10
14