作者ddavid (星舞弦独角兽神话忆)
看板GameDesign
标题Re: [问题]音速小子的行为模式
时间Sun Jun 4 16:27:31 2006
※ 引述《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)力量
,也只有这个力是被人体吸收掉归零的,而往右上的力保持使得出现爬上斜坡的情况
。而脚不会打滑是因为地心引力持续作用所以正向力一直会有,也就有磨擦力。爬到
越陡之处,对地面的正向力分量就越小,磨擦力越来越不足而被地心引力往左下的分
量打败所以才会滑下来。
看要做到多细就把整个机制的越多东西省略这样,反之影响较小或游戏设定不需
要的东西就不鸟或省略掉就好了。
--
「去质疑亲眼所见的事是最愚昧的行为。这又分为两种--质疑自己所见是不是
真的,或是用见到的事去质疑没见到的事。呵。」
--芙莉雅,谎言事务所实现使者
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.31.182
※ 编辑: ddavid 来自: 140.112.31.182 (06/04 16:27)
※ 编辑: ddavid 来自: 140.112.31.182 (06/04 16:29)
※ 编辑: ddavid 来自: 140.112.31.182 (06/04 16:29)
1F:→ StubbornLin:@@ 我後来有修正 是指法线方向归0 06/04 16:55
2F:推 StubbornLin:也就是 正向力的大小与施在上面作用力一样大时 06/04 16:55
3F:→ StubbornLin:两个相加刚好等於0的意思 实作起来的确是要用加的 06/04 16:55