サンプル6


  今回は、glutを使ったキー入力、マウス入力のサンプルです。


目次

キー入力

  マウス入力の前に、キー入力についてです。glutの場合、キーが押されると、イベントが発生し、glutKeyboardFunc()か、glutSpecialFunc()で登録した関数が呼ばれます。

void glutSpecialFunc(void (*func)(int key, int x, int y))

  矢印や、ファンクションキーなどが押された場合に呼ばれる関数を登録する。
  keyは、GLUT_KEY_*といった定数のいずれかである。
  x,yは、キーが押されたときのマウスカーソルの座標である。
void glutKeyboardFunc(void (*func)(unsigned char key, int x, int 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))

  マウスのボタンが押された時と、離されたときに呼ばれる関数を登録する。
  buttonは、GLUT_LEFT_BUTTON(左ボタン)、GLUT_MIDDLE_BUTTON(真ん中のボタン)、GLUT_RIGHT_BUTTON(右ボタン)のいずれかである。
  stateは、GLUT_DOWN(押されたとき)か、GLUT_UP(離された時)のどちらか。
  x,yは、そのときのマウスの座標である。
void glutMotionFunc(void (*func)(int x, int y))
  ドラッグされたときに呼ばれる関数を登録する。
  x,yはマウスの座標である。

  キーやマウス入力ができるようになれば、そこそこ遊べるプログラムも書けるのではないでしょうか。


戻る