LoginSignup
0
0

More than 1 year has passed since last update.

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

Posted at

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;
0
0
0

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
  3. You can use dark theme
What you can do with signing up
0
0