我試過按下X秒按鈕?
keybd_event(keyByte, 0, KEYEVENTF_KEYDOWN, 0);
Thread.Sleep(3000);
keybd_event(keyByte, 0, KEYEVENTF_KEYUP, 0);
但只按一次停了下來,我希望它來模擬按住一個按鈕。例如,如果我在我製作的汽車遊戲中模擬玩家二,並且想要在前進的同時轉動汽車。曲線是90,所以我想保持3秒。我如何做到這一點?
編輯:試圖
DateTime start = DateTime.Now;
TimeSpan timespan = DateTime.Now.Subtract(DateTime.Now);
if (timespan.TotalMilliseconds < duration)
{
timespan = DateTime.Now.Subtract(start);
keybd_event(keyByte, 0, KEYEVENTF_KEYDOWN, 0);
}
keybd_event(keyByte, 0, KEYEVENTF_KEYUP, 0);
但是沒有結果
您需要計時器,它在3000毫秒後觸發,併發送鍵喚醒事件而不是睡眠。 – Reniuz
在你給的例子中,爲什麼不直接調用轉向代碼呢? 'start_turning;等待; stop_turning' –
您需要添加一個控制模擬播放器的替代方法,而不是依靠鍵盤輸入。你的遊戲引擎不應該關心汽車如何被控制,「控制器」層應該接收鍵盤輸入或自動命令,並將適當的指令傳遞給遊戲引擎。 – Flynn1179