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);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)