最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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é)果與游戲符合得很好。

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

分享到微博請遵守國家法律
元阳县| 丰城市| 延庆县| 娄底市| 绍兴市| 镇远县| 西青区| 阳曲县| 滨海县| 邢台市| 石泉县| 广东省| 安溪县| 黔西| 南皮县| 富民县| 长丰县| 淳安县| 苍溪县| 台东市| 嘉禾县| 绥德县| 通山县| 长岭县| 黔江区| 北流市| 舟山市| 明水县| 伊通| 禄丰县| 鄂伦春自治旗| 柘城县| 泰和县| 东至县| 城步| 泰州市| 讷河市| 鹰潭市| 五家渠市| 额济纳旗| 临泉县|