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