DirectXを使ってゲーム作っているのですが、カメラをマウスの移動方向で回転させたいと思っています。
DirectXInputを使わずにやろうと思い、次のようなソースを書いたのですが、カーソルの右と上への移動が過度にされ、
左と下への移動があまりうまく判定されません。どのように改善したらよいでしょうか。
POINT pos;//現在のマウス位置
POINT poso;//マウス左ボタンを押した位置
case WM_LBUTTONDOWN:
if(!isMouseDown){
poso.x=LOWORD(lParam);//マウス左ボタンを押した位置セット
poso.y=HIWORD(lParam);
}
isMouseDown=TRUE;
break;
case WM_LBUTTONUP:
isMouseDown=FALSE;
break;
case WM_MOUSEMOVE:
if(!isMouseDown)return 0;
pos.x-=poso.x;//差でマウスの移動方向を判定
pos.y-=poso.y;
if(pos.x<0)(回転角変更処理)
else if(pos.x>0)(回転角変更処理)
if(pos.y<0)(回転角変更処理)
else if(pos.y>0)(回転角変更処理)
poso.x=pos.x;//動かすたびに移動方向を判定できるようリセット
poso.y=pos.y;
break;
while( msg.message!=WM_QUIT )// メッセージループ
{
if(isMouseDown)GetCursorPos( &pos );
}