今回は、glutを使ったキー入力、マウス入力のサンプルです。
void glutSpecialFunc(void (*func)(int key, int x, int y))
矢印や、ファンクションキーなどが押された場合に呼ばれる関数を登録する。void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y))
keyは、GLUT_KEY_*といった定数のいずれかである。
x,yは、キーが押されたときのマウスカーソルの座標である。
A〜Z、0〜9、その他の記号、ESC、リターン、BSなどのキーが押されたときに呼ばれる関数を登録する。
keyは、文字コードである。SHIFTキーなどの状態によって、大文字であったり、小文字であったりする。SHIFTキー、ALTキー、CTRLキーの状態は、glutGetModifiers()を使って取得することができる。
x,yは、キーが押されたときのマウスカーソルの座標である。
void glutMouseFunc(void (*func)(int button, int state, int x, int y))
マウスのボタンが押された時と、離されたときに呼ばれる関数を登録する。void glutMotionFunc(void (*func)(int x, int y))
buttonは、GLUT_LEFT_BUTTON(左ボタン)、GLUT_MIDDLE_BUTTON(真ん中のボタン)、GLUT_RIGHT_BUTTON(右ボタン)のいずれかである。
stateは、GLUT_DOWN(押されたとき)か、GLUT_UP(離された時)のどちらか。
x,yは、そのときのマウスの座標である。
ドラッグされたときに呼ばれる関数を登録する。
x,yはマウスの座標である。
キーやマウス入力ができるようになれば、そこそこ遊べるプログラムも書けるのではないでしょうか。