keybd_event(keyByte, 0, KEYEVENTF_KEYDOWN, 0);
Thread.Sleep(3000);
keybd_event(keyByte, 0, KEYEVENTF_KEYUP, 0);
を試みた。しかし、それは一度だけと一時停止し、それを押すと、私はそれがボタンを押しシミュレートします。私が作った車の試合でプレーヤー2をシミュレートしているなら、それは前進しながら車を回したいと思う例です。カーブは90なので、それを3秒間保持したい。どのように私はこれを行うには?
EDITは:
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);
を試みたが、結果
あなたは3000ms後に起動し、スリープの代わりにキーアップイベントを送信するタイマーが必要です。 – Reniuz
あなたが与えた例では、回転コードを直接呼び出すだけではいかがですか? 'start_turning;待つ; stop_turning' –
キーボード入力に頼るよりもシミュレートされたプレーヤーを制御する別の方法を追加する必要があります。あなたのゲームエンジンは車がどのように制御されているか気にしてはいけません。「コントローラ」レイヤーはキーボード入力や自動化されたコマンドを受け取り、適切な命令をゲームエンジンに渡します。 – Flynn1179