【DirectXSamples】Camera自动移动

突然发现在DirectXSamples中所有的Sample都出现一个相同的“Bug”:

鼠标在Sample的窗口范围内Move,且此时不按鼠标任何一个按键,相机就会自动向前移动,鼠标停止移动,则相机立即停止移动。

 

发现”Bug“之后采取了一下行动:

  1. 发现这个“Bug”之后,立刻打开另外一个Sample,复现了这个”Bug“。(呃,难道我发现了一个惊天大Bug?怎么可能,以前没见过这个问题)
  2. 立刻重启系统。(难道是刚才那个智障软件导致输入消息异常?)
  3. 重启之后“Bug”依旧存在。(嗯,难道中毒了?不太可能吧,开始自我怀疑,怀疑我对自己的安全意识过于自信了。。。)
  4. 冷静了一下,决定调试一下,成功复现了”Bug“。
  5. 发现只要鼠标移动vPosDelta就不为0,然后vPosDelta是这样算的:
    • D3DXVECTOR3 vPosDelta = m_vVelocity * fElapsedTime;
  6. MouseMove时,m_vVelocity不为0,接着发现了下面这段代码:
    • D3DXVECTOR3 vAccel = m_vKeyboardDirection + m_vGamePadLeftThumb;
    • ……
    • m_vVelocity = vAccel;
  7. 至此,终于发现了真凶m_vGamePadLeftThumb。

之前没注意过,巨硬的DXSample还支持了GamePad。

 

【DirectXSamples】Camera自动移动

上一篇:基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(五)


下一篇:tomcat服务器&HTTP协议 知识点