Mac 用の iPhone リモート マウス コントローラー アプリケーションを作成します。iPhone アプリケーションは座標値を Mac に送信し、Mac はマウス位置の値を処理します。
Mac で現在のマウスの位置を取得するために、レシーバーは [NSEvent mouseLocation] を呼び出します。
x の値は常に正しいですが、y の値は間違っています。
このイベントを処理するために "while" ループを使用しました。
while (1) {
mouseLoc = [NSEvent mouseLocation];
while ((msgLength = recv(clientSocket, buffer, sizeof(buffer), 0)) != 0) {
CGPoint temp;
temp.x = mouseLoc.x;
temp.y = mouseLoc.y; // wrong value
........
y の値はループ周期ごとに異なります。たとえば、最初のループでは y の値は 400 で、次のループでは y は 500 です。y は次のループで再び 400 になります。
マウス ポインターは連続的に上下し、2 つの異なる y 値の合計は常に 900 です (画面の解像度が 1440 * 900 であるためだと思います)。
なぜそれが起こるのか、何をすべきか、そしてそれをデバッグする方法がわかりません。