码迷,mamicode.com
首页 > 移动开发 > 详细

【DirectXSamples】Camera自动移动

时间:2018-10-22 01:18:15      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:keyboard   dir   directx   范围   自我   相机   重启   lap   输入   

突然发现在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自动移动

标签:keyboard   dir   directx   范围   自我   相机   重启   lap   输入   

原文地址:https://www.cnblogs.com/adasada/p/9827689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!