• DX9动画控制


    SmoothChangeAnimation函数申明:

    void SmoothChangeAnimation(LPD3DXANIMATIONCONTROLLER pAnimController,LPD3DXANIMATIONSET pAnimSet,FLOAT fCurrTime);

    SmoothChangeAnimation函数实现:

    void SmoothChangeAnimation( LPD3DXANIMATIONCONTROLLER pAnimController, LPD3DXANIMATIONSET pAnimSet, FLOAT fCurrTime )
    {
        static DWORD dwOldTrack = 0;
        static DWORD dwNewTrack = 1;
    
        dwNewTrack  = dwOldTrack == 0 ? 1 : 0;
        pAnimController->SetTrackAnimationSet( dwNewTrack, pAnimSet );
    
        pAnimController->UnkeyAllTrackEvents( dwOldTrack );
        pAnimController->UnkeyAllTrackEvents( dwNewTrack );
    
        pAnimController->KeyTrackEnable( dwOldTrack, FALSE, fCurrTime + 0.125f );
        pAnimController->KeyTrackSpeed(  dwOldTrack, 0.0f,  fCurrTime, 0.125f, D3DXTRANSITION_LINEAR );
        pAnimController->KeyTrackWeight( dwOldTrack, 0.0f,  fCurrTime, 0.125f, D3DXTRANSITION_LINEAR );
    
        pAnimController->SetTrackEnable( dwNewTrack, TRUE );
        pAnimController->KeyTrackSpeed(  dwNewTrack, 1.0f,  fCurrTime, 0.125f, D3DXTRANSITION_LINEAR );
        pAnimController->KeyTrackWeight( dwNewTrack, 1.0f,  fCurrTime, 0.125f, D3DXTRANSITION_LINEAR );
    
        dwOldTrack = dwNewTrack;
    }

    控制动作

    static float fCurrTime=0.0f;
        fCurrTime += timeDelta;
    
        LPD3DXANIMATIONSET pAnimationSet=NULL;
    
        if(::GetAsyncKeyState(0x31)&0x8000f)
    
        {
        g_pAnimController->GetAnimationSetByName("stand",&pAnimationSet);
        SmoothChangeAnimation(g_pAnimController,pAnimationSet,fCurrTime);
        }
        if(::GetAsyncKeyState(0x32)&0x8000f)
    
        {
        g_pAnimController->GetAnimationSetByName("sworddance",&pAnimationSet);
        SmoothChangeAnimation(g_pAnimController,pAnimationSet,fCurrTime);
        }
        SAFE_RELEASE(pAnimationSet);
    
    
        Device->SetTransform(D3DTS_WORLD, &matFinal);
    
        g_pAnimController->AdvanceTime(timeDelta,NULL);
        UpdateFrameMatrices(g_pFrameRoot, &matFinal);
  • 相关阅读:
    React 获取服务器API接口数据:axios、fetchJsonp
    nvm管理node版本
    windows自定义命令的创建
    目标平台、活动平台 配置,出现未能加载文件或程序集“xxx”或它的某一个依赖项报错
    Quartz.net使用总结
    vs 2010 中类文文件模板的修改
    js获取url参数的两种方法
    遍历文件夹
    简单多条件动态查询的实现
    ajax请求跨域问题
  • 原文地址:https://www.cnblogs.com/szmtjs10/p/16260832.html
Copyright © 2020-2023  润新知