今回はカーソルの置き換えをします。
文字’+’を画面にテキスト表示することで、カーソルに見立ててみます。
テキスト表示するには、
glRasterPos3d(x,y,z)で座標を決めて、
glutBitmapCharacter(フォント, 文字)で、フォントと文字を指定すれば良いです。
今はこのように、立方体を遠くに描画するだけのカーソル処理になっているので、
void cb_set_cursor()
{
GLdouble v[3];
v[0] = cb_player_pos.x + 40 * cos((double)cb_player_pos.dir*M_PI/180.0),
v[1] = cb_player_pos.y - 5,
v[2] = cb_player_pos.z + 40 * sin((double)cb_player_pos.dir_v*M_PI/180.0),
cb_set_cube(v);
}

これを下のように修正します。
void cb_set_cursor()
{
GLdouble x,y,z;
x = cb_player_pos.x + 2 * cos((double)cb_player_pos.dir*M_PI/180.0),
y = 2+cb_player_pos.y + 2 * sin((double)cb_player_pos.dir_v*M_PI/180
z = cb_player_pos.z + 2 * sin((double)cb_player_pos.dir*M_PI/180.0),
glRasterPos3d(x,y,z);
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, '+');
}
中央に+記号が表示されました。


コメント