作者SecondRun (雨夜琴声)
看板C_and_CPP
标题Fw: [程式] 抓取键盘输入
时间Thu Oct 26 00:19:43 2017
※ [本文转录自 GameDesign 看板 #1PyBTy13 ]
作者: SecondRun (雨夜琴声) 看板: GameDesign
标题: [程式] 抓取键盘输入
时间: Thu Oct 26 00:10:29 2017
之前学校在教XNA
判断key按下那一瞬间的方式是判断
(现在是否按下key && 前一帧跟现在这帧的键盘状态不相同)
现在想用C++做一样的效果可是出现问题
测试内容如下
BYTE* p1 = new BYTE[256];
BYTE* p2 = new BYTE[256];
while (1) {
*p2 = *p1;
if (!GetKeyboardState(p1)) cout << "get key fail" << endl;
if (*p1 != *p2) {
cout << "value不同" << endl;
}
}
GetKeyboardState(p1)看起来是成功的
可是p1里面的值却一直没有动
请问是为什麽呢@_@
--
(づ′・ω・)づ
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 182.236.24.16
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1508947836.A.043.html
※ 编辑: SecondRun (182.236.24.16), 10/26/2017 00:18:10
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: SecondRun (182.236.24.16), 10/26/2017 00:19:43
2F:→ VictorTom: 该func会吐出Virtual Key"s"的state. 10/26 01:03
3F:→ VictorTom: 你的 (*p1 != *p2) 只会比较第一个key的state 10/26 01:03
4F:推 LPH66: 主要是 *p2 = *p1; 这一行并不是复制阵列, 你需要 memcpy 10/26 01:26
5F:→ LPH66: 或是如果会用 std::copy() 的话也可以用 10/26 01:27
6F:→ LPH66: 当然比较就也要用 memcmp 或是 std::equal 10/26 01:28
7F:→ SecondRun: 感谢解惑 明天试试 10/26 01:34
8F:推 stupid0319: HOOK keyboard message 比较快 10/26 13:54
9F:→ SecondRun: 这个要研究一下,昨天查资料有看到但不太懂 10/26 14:11