これで調べて初めて知ったのですが、Processing
に出てくるKeyEvent
クラスは3つあるようです^^;
後ろ2つはEvent#getNativeしたときに取れるものです。
P2D
やP3D
にしなければ、下記コードで取得できました。
P2D
やP3D
の時にどうすればいいかはちょっとわかりませんでした。
ややこしいのでフルネームにしています。
Processing
1void setup() {
2 size(200, 200);
3 //size(200, 200, P2D);
4 //size(200, 200, P3D);
5}
6
7void draw() {
8}
9
10void keyPressed(processing.event.KeyEvent e) {
11 java.awt.event.KeyEvent nativeEvent = (java.awt.event.KeyEvent)e.getNative();
12
13 //P2D・P3Dにした場合↓になるが、getKeyLocationはないし代替になるものもなさそう。。。
14 //com.jogamp.newt.event.KeyEvent nativeEvent = (com.jogamp.newt.event.KeyEvent)e.getNative();
15
16 println(nativeEvent);
17
18 if (key == CODED && keyCode == SHIFT) {
19 int location = nativeEvent.getKeyLocation();
20 if (location == java.awt.event.KeyEvent.KEY_LOCATION_LEFT) {
21 println("left shift");
22 }
23 if (location == java.awt.event.KeyEvent.KEY_LOCATION_RIGHT) {
24 println("right shift");
25 }
26 }
27}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/24 05:27