国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

從代碼理解梯子上的移動

2023-08-07 00:11 作者:l2zq  | 我要投稿

相關(guān)代碼(CGameMovement::LadderMove):https://github.com/alliedmodders/hl2sdk/blob/78dab58646d5983c77af44c45a877b89196eb82c/game/shared/gamemovement.cpp#L2854-L3014

圖示 (地圖:kz_ghs)

1. 代碼理解

梯子是一個(gè)可以攀爬的固體。如圖,把玩家攀爬的那一面的垂直方向定義為X軸,把梯子向上的方向定義為Z軸,然后就有垂直于X,Z軸的Y軸。

由玩家的視角和移動操作(WASD)得到向量v(粉色):若前進(jìn)(W)或后退(S),就在玩家視角的正前方增加200. 若向左(A)或向右(D),就在玩家的左方或右方增加200.

在梯子上獲得速度是瞬間的,此速度的計(jì)算方法:將向量v分為兩部分,一部分是垂直于X軸(即平行于梯子平面,綠色部分)設(shè)為V_yz,一部分平行于X軸(即垂直于梯子平面,黃色部分)設(shè)為V_x。最終速度為:V_yz部分不變。V_x部分旋轉(zhuǎn)90度,使得指向平面的速度轉(zhuǎn)為向上。然后兩者相加。這樣,正對梯子按W也可向上攀爬。

在CSS和CSGO中,還有“Ladder Dampen"機(jī)制:當(dāng)向量v的xy部分(V_xy, 白色部分)與X軸正方向夾角大于135度時(shí)(即點(diǎn)乘小于-0.707, 此值由sv_ladder_angle控制),就將向量v沿y軸的速度(V_y, 藍(lán)色部分)乘以0.2(由sv_ladder_dampen控制)。這個(gè)機(jī)制可能是為了防止玩家意外從梯子側(cè)面掉下。

輔助理解:

以視角看正上的WD快速上梯為例:W產(chǎn)生向上的200速度,D產(chǎn)生指向梯子的200速度。D的200速度改為向上的速度。兩個(gè)200相加得到400速度。實(shí)際操作中不能看向正上,所以得到的速度略小于400.

2. 可視化

圖片是從上向下看,其中view是視角,n是垂直于梯子平面的向量,v是上一節(jié)的向量v.

設(shè)view逆時(shí)針旋轉(zhuǎn)的角度為x(0度為圖片右方),俯仰的角度為y(0度是水平,正數(shù)表示向上看)。

假設(shè)按下了WD鍵,則獲得的向量v如圖所示。

俯視圖

建立坐標(biāo)系,橫坐標(biāo)是X,正方向向右,縱坐標(biāo)是Y,正方向向上。

綠色表示更偏向縱向速度,紅色表示更偏向水平速度。藍(lán)色框內(nèi)是兩個(gè)角度各在0-90度的結(jié)果。有兩條顏色明顯變化的弧線,這是"Ladder Dampen"的影響。

以上圖片使用以下代碼計(jì)算得到:

script.js:

index.html

以上結(jié)果也支持此文中的經(jīng)驗(yàn):

對比藍(lán)色框和此圖第一象限

3. 實(shí)驗(yàn)驗(yàn)證

在CSGO中找到一個(gè)視角和移動速度:

!showpos

視角為(46.07水平,89.00豎直),速度為(水平146.46, 豎直336.21)。

將視角用以上代碼計(jì)算:

計(jì)算結(jié)果與游戲符合得很好。

從代碼理解梯子上的移動的評論 (共 條)

分享到微博請遵守國家法律
土默特左旗| 公安县| 布拖县| 佛坪县| 广灵县| 富平县| 景东| 台前县| 汉寿县| 息烽县| 武威市| 宕昌县| 望都县| 灵石县| 广宗县| 乌兰县| 皮山县| 华坪县| 略阳县| 长春市| 洮南市| 望都县| 新泰市| 乌拉特前旗| 措勤县| 云浮市| 太康县| 桐庐县| 蕲春县| 霍林郭勒市| 团风县| 拜泉县| 元阳县| 湘乡市| 新昌县| 屯门区| 偃师市| 祁连县| 武平县| 泽库县| 江山市|