- 633 名前:629 mailto:sage [2008/10/09(木) 19:43:32 ]
- やっぱりどうしても、実際のカーソルの位置と、DirectInputで求めたカーソル移動量が食い違います。
スクリーン上で1000px水平に移動させると、移動量の合計が600〜800くらいになっています。 下がそのコードなのですが、どこか間違っているところがありますか? void MouseDevice::UpdateState() { HRESULT hr; if (hr = pDevice_->Acquire(), FAILED(hr)) { LOG_WARN("IDirectInputDevice8::Acquire 非アクティブになった?"); return; } DIMOUSESTATE mouseState; if (hr = pDevice_->GetDeviceState(sizeof(mouseState), &mouseState), FAILED(hr)) { LOG_ERROR("IDirectInput8::GetDeviceState"); return; } cursorPos_.x = clamp(cursorPos_.x + mouseState.lX, 0L, 1279L); cursorPos_.y = clamp(cursorPos_.y + mouseState.lY, 0L, 1023L); //SetCursorPos(cursorPos_.x, cursorPos_.y); POINT pt; GetCursorPos(&pt); std::stringstream ss; ss << "MOUSE " << cursorPos_.x << "," << cursorPos_.y << " (" << pt.x << "," << pt.y << ")"; LOG_INFO(ss.str().c_str()); }
|

|