cs跳跃:FPS跳跃控制



  跳跃在第人称射击游戏中是很重要动作在Quake中很多窍门技巧都是通过jump来完成那么跳跃是如何实现呢?

  其实只要明白跳跃原理控制起来就是花点脑经问题Jump说白了就是眼睛(或者说Camera)所在位置升高和回落

这里我们设置 3个变量 D3DXVECTOR3 VDot,VAtPo,VUp;
VDot 代表眼睛(Camera)所在位置
我们所要做就是在跳跃时候在VDot上加上jump步长:

D3DXVECTOR3 NorVUp;
D3DXVec3Normalize(&NorVUp, &VUp);
VDot  jumpskip*NorVUp;
VAtPo  jumpskip*NorVUp;

VUp总是向上可以简化为

VDot.y  jumpskip;
VAtPo  jumpskip;

jump步长可以是值为每帧上升和落下距离段为了模拟真实物理效果这组应该根据牛顿力学重力加速度公式来计算:例如我们定义
float jumpskip[20] = { 0.95, 0.85, 0.75, 0.65, 0.55, 0.45, 0.35, 0.25, 0.15, 0.05,
-0.05, -0.15, -0.25, -0.35, -0.45, -0.55, -0.65, -0.75, -0.85, -0.95, };

下面是控制简单跳跃代码片段:
相关变量有:
bool jumpping;
 jump;
 delay 


这段代码加在每Frame都变化逻辑里:
//D3DXVECTOR3 NorVUp;
//D3DXVec3Normalize(&NorVUp, &VUp);

 (jumpping)
{
    delay ;
     (delay  5)
    {
        delay = 0;
        VDot  jumpskip*NorVUp;
        VDot.y  jumpskip[jump];
        VAtPo  jumpskip[jump];
         (jump  20)
        {
            jump = 0;
            jumpping = false;
        }
        SetView;
    }
}

下面代码加在键盘控制代码里面:
 VK_SPACE:
     (jumpping  true)
        ;
    
        jumpping = true;
    ;

这里说是简单jump控制在游戏中根据需要可能会更加复杂
Tags:  跳跃大搜查线 cs跳跃

延伸阅读

最新评论

发表评论