そこで困ったことがありましたので質問させていただきます。
駒の状態を
int KOMA[BOARD_HEIGHT][BOARD_WIDTH] =
{
{ 1,1,1,1,1,1,1,1},
{ 1,1,1,1,1,1,1,1},
{ 0,0,0,1,1,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,1,1,0,0,0 },
{ 1,1,1,1,1,1,1,1 },
{ 1,1,1,1,1,1,1,1 },
};
void DrawKOMA(){
for( int i = 0; i <= BOARD_HEIGHT; i++ ){
for( int j = 0; j < BOARD_WIDTH; j++ ){
if( BoardCard[i][j] == 0){
DrawGraph( j*KOMA_SIZE, i*KOMA_SIZE, KOMA0, FALSE );
}
if( BoardCard[i][j] == 1){
DrawGraph( j*KOMA_SIZE, i*KOMA_SIZE, KOMA1, FALSE );
}
}
}
}
ここでマウスを使い、現在のマウスのポインタ下にあるカードの種類を表示したいと思い、
void DrawSelectKOMA(){
GetMousePoint( &MouseX, &MouseY );
DrawFormatString( 100, 100, GetColor(255,255,255), "コマNo: %d", KOMA[MouseY/KOMA_SIZE][MouseX/KOMA_SIZE] );
}
原因は恐らくGetMousePoint関数がMouseX,MouseYに与えてる数値はデスクトップ画面左上を(0,0)としているのが原因だと思っています。
現在アクティブにしているウィンドウ(ゲーム)の左上の座標を(0,0)としたマウスの座標を取得できれば改善できると思うのですが・・・。
そのような手法等ありましたらご教授願います。
ライブラリはDXライブラリ
開発環境はMicrosoft VisualC++ 2010 Expressです。
よろしくお願いします。