2016-10-08 36 views
0

私は2Dボードゲームを作っています。ゲームボードグリッドは8×8で、グリッドの各セルはオブジェクトです。ボードは64個のセルオブジェクトで構成されています。私の目的は、マウスがあるセルを調べることです。マウス座標を追跡し、グリッド座標と比較することでこれを試みています。これは座標を追跡しているもののOpenGL - マウスの位置座標を取得

POINT p 

if (GetCursorPos(&p)){ 

} 

if (ScreenToClient(hWnd, &p)) 
{ 

} 

:私は私の更新機能では、以下の使用して、現在のマウスの位置を取得しようとしています

gluOrtho2D(-4,4,-4,4); 

次のように座標系を、私の

です私はgluOrtho2Dで設定したワールド座標を正しく追跡していません。どうすればこれを達成できますか?

答えて

0

それはあなたのglViewPort

のは、あなたが持っているとしましょうによって異なります glViewport(0,0、640、640);

マウスの位置は(mousePos.x、mousePos.y)であり、あなたが知りたい世界の位置は(world.x、world.y)である

そして、ことをあなたの左/上隅を与えます画面には、その後、我々は次のことを行うことができます

を座標(0、0)である:

world.x = -4.0 +(mousePos.x/640.0)*(4 * 2)

世界。 y = 4.0 - (mousePos.y/640.0)*(4 * 2)

ここでは、画面内のマウスの正規化位置(mousePos.x/640)を使用し、この値に単語の幅(4 * 2)を掛ける線形補間法を説明します。 グリッドの左上隅が(-4,4)に始まると、ワールド位置のオフセットを追加します。

関連する問題