わかりましたので、画面に表示する画像がいくつかあります。実際に知っておく必要があるのは、各 glvertex2f() がポイントであるため、4 つのポイントが接続されていることです。各 glVertex2f は X,Y によって作成されます。この領域の範囲を保存したいので、マウスをクリックしてx、yの結果を取得すると、マウスクリックのx、yがこの領域内にあるかどうかをテストできます。
ここにエリアを作成します
for( int z = 0; z < 6; z++ )
{
if( game->player1.Blockbestand[z] > 0 )
{
glLoadIdentity();
xoff = (z/4.0f);
yoff = (floor(xoff))/4.0f;
glBegin(GL_QUADS);
glTexCoord2f(0/4 + xoff,0/4 + yoff); glVertex2f( x1,game->camera.height-y1);
glTexCoord2f(0/4 + xoff,1.0/4 + yoff); glVertex2f( x2,game->camera.height-y1 );
glTexCoord2f(1.0/4 + xoff,1.0/4 + yoff); glVertex2f( x2,game->camera.height-y2 );
glTexCoord2f(1.0/4 + xoff,0/4 + yoff); glVertex2f( x1,game->camera.height-y2 );
glEnd();
x1= x2+10;
x2 = x1+30;
xoff = (z/4.0f);
yoff = (floor(xoff))/4.0f;
}
}
そして、ここでマウスクリックを取得します
for (std::list<MouseState>::iterator it = clicks->begin(); it != clicks->end(); it++) {
if (it->leftButton == true){
std::cout << "Left click!\n";
std::cout << "x: " << it->x << "\n";
std::cout << "y: " << it->y << "\n";
}
}
だから、どうにかしてその領域を配列に保存できると思います。そして、左ボタンのクリックがtrueになるたびに、x、yを取得し、配列を調べて、その領域にあるかどうかを確認します..しかし、これを行う方法の手がかりはありません..