LoginSignup
0

More than 1 year has passed since last update.

posted at

openFrameworksでMac英数キー・かなキーの入力がスペースキーになってしまう問題

openFrameworksではなぜか英数キーを押すとスペースキーとして処理されてしまう。

私の場合、基本的にはプログラムを書いているので、常に半角英数入力になるように、手癖で英数キーをポチポチ押してしまうのですが、
意図せずにスペースキーに実装した機能が走ってしまい非常にうざい。

ofApp.cpp
void ofApp::keyReleased(int key) {
  cout << key;
}

このようなプログラムを走らせると
Macの日本語キーボードの場合、
スペースキー・英数キー・かなキーが全部32になります。

回避策

ofApp.cpp
void ofApp::keyReleased(ofKeyEventArgs & key) {
  cout << key.key;
  cout << key.keycode;
  cout << key.scancode;
}

ofKeyEventArgs を使った実装であれば、それぞれのキーを個別に判定することが可能です。
key.keycodekey.scancodeの中身が異なります。

スペースキーの場合

  cout << key.key // 32;
  cout << key.keycode // 32;
  cout << key.scancode // 49;

英数キーの場合

  cout << key.key // 32;
  cout << key.keycode // -1;
  cout << key.scancode // 102;

かなキーの場合

  cout << key.key // 32;
  cout << key.keycode // -1;
  cout << key.scancode // 104;

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0