回答編集履歴
3
半角/全角キーについての記述を追加
test
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
変換キーを押したとき`key`で得られる値は0 (unknown key)になるので、`event.key`では判定できません。
|
2
|
+
|
3
|
+
半角/全角キーを押したとき`key`で得られる値は96 (K_BACKQUOTE)です。英語キーボードで`` ` ``がある位置だからですかね。
|
2
4
|
|
3
5
|
|
4
6
|
|
5
|
-
`scancode`でスキャンコードが得られるので、そちらを使ってください。質問文のコードであれば、`event.scancode`の値が、変換キーでは121になります(Windowsの場合)。
|
7
|
+
対策ですが、`scancode`でスキャンコードが得られるので、そちらを使ってください。質問文のコードであれば、`event.scancode`の値が、変換キーでは`121`、半角/全角キーでは`41`になります(Windowsの場合)。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
なお、(今回は関係ないですが)文字を得るためなら`event.unicode`を使います。
|
6
12
|
|
7
13
|
|
8
14
|
|
@@ -14,4 +20,8 @@
|
|
14
20
|
|
15
21
|
print("変換")
|
16
22
|
|
23
|
+
elif event.scancode == 41:
|
24
|
+
|
25
|
+
print("半角/全角")
|
26
|
+
|
17
27
|
```
|
2
無変換は対象外だったので除外
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
変換キー
|
1
|
+
変換キーを押したとき`key`で得られる値は0 (unknown key)になるので、`event.key`では判定できません。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
`scancode`でスキャンコードが得られるので、そちらを使ってください。質問文のコードであれば、`event.scancode`の値が、
|
5
|
+
`scancode`でスキャンコードが得られるので、そちらを使ってください。質問文のコードであれば、`event.scancode`の値が、変換キーでは121になります(Windowsの場合)。
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -10,11 +10,7 @@
|
|
10
10
|
|
11
11
|
if event.type == pygame.KEYDOWN:
|
12
12
|
|
13
|
-
if event.scancode == 12
|
13
|
+
if event.scancode == 121:
|
14
|
-
|
15
|
-
print("無変換")
|
16
|
-
|
17
|
-
elif event.scancode == 121:
|
18
14
|
|
19
15
|
print("変換")
|
20
16
|
|
1
コードを追加
test
CHANGED
@@ -3,3 +3,19 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
`scancode`でスキャンコードが得られるので、そちらを使ってください。質問文のコードであれば、`event.scancode`の値が、無変換キーでは123、変換キーでは121になります(Windowsの場合)。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
```Python
|
10
|
+
|
11
|
+
if event.type == pygame.KEYDOWN:
|
12
|
+
|
13
|
+
if event.scancode == 123:
|
14
|
+
|
15
|
+
print("無変換")
|
16
|
+
|
17
|
+
elif event.scancode == 121:
|
18
|
+
|
19
|
+
print("変換")
|
20
|
+
|
21
|
+
```
|