0

ゲームパッドをサポートしていない (SDL/OpenGL だと思います) ゲームにマウス イベントを送信しようとしています。利用可能な多くのゲームパッドからキーボード/マウスへのアプリケーションの 1 つを使用できることはわかっていますが、独自のアプリケーションを作成するのは楽しいだろうと思いました。次のコードは、ゲームの実行中以外は問題なく動作します。

// point is a CGPoint that is set earlier on...
CGEventRef event = CGEventCreateMouseEvent(NULL,kCGEventMouseMoved , point,  0);
CGEventSetType(event, kCGEventMouseMoved);// apparently there is a apple bug that requires this...
CGEventPost(kCGHIDEventTap, event);
CFRelease(event);

これにより、デスクトップやゲーム メニューでカーソルを移動できますが、実際のゲーム中にゲームがカーソルを取得するのは、物理的なマウスを移動したときだけです。キーボード イベントの送信はゲームで正常に機能するため、何が問題なのかわかりません

4

1 に答える 1

0

私は問題が何であるかを知りました、私は使用しなければなりませんでした:

CGEventSetIntegerValueField(event, kCGMouseEventDeltaX, dX);
CGEventSetIntegerValueField(event, kCGMouseEventDeltaY, dY);

マウスの動きの相対座標を設定します。これは、ゲームがマウスをゲームウィンドウの中央にワープしていて、アプリケーションがそこからマウス移動イベントを取得していなかったためだと思います。

于 2012-07-28T02:10:44.750 に答える