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.keycode
とkey.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;