首页 > 代码库 > 龙书dx9 chapter5 light的创建和 GetAsyncKeyState()&0x8000f的问题
龙书dx9 chapter5 light的创建和 GetAsyncKeyState()&0x8000f的问题
笔记1:当我们找个文本,按下物理按键a aaaaa时候,会发现第一次会有隔断的时间。
参考:http://tieba.baidu.com/p/1829831956
GetAsyncKeyState() 的返回值怎么理解?
实例代码里有if( ::GetAsyncKeyState(VK_RIGHT) & 0x8000f )这一句,按下→键后,得到 0x1
void main(){ static int testInt=0; while (1) { if(short a =( ::GetAsyncKeyState(VK_RIGHT)))// { cout<<a<<endl; cout<<testInt++<<"次数"<<endl; } }}
上面代码结果发现-32767出现了一次。
if(short a =( ::GetAsyncKeyState(VK_RIGHT))&0x8000f)后,按下只输出一次 1
其中short的负数以补码的形式存储在计算机中, -32767即是0x8001 -32768为0x8000
总结:1.当我们持续按键不松开,使用GetAsyncKeyState(VK_RIGHT))&0x8000f)只返回一次真;2.0x8000f其中起始的8没有起作用
龙书dx9 chapter5 light的创建和 GetAsyncKeyState()&0x8000f的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。