私はMacOSX 10.6を使用しており、キーボード入力セレクタメニューにDvorak、US Extended、およびNorwegianがあり、USExtendedが使用しています。
キーボード入力でPygameプログラムを実行すると、実際に何が選択されているかに関係なく、 pygameはdvorakを使用していると思っているようです。
これは、キーボード入力を受け取るコードの一部です。
# Check for events
for event in pygame.event.get():
if event.type == KEYDOWN:
# Change the keyboard variables
if event.key == K_LEFT or event.key == ord('a'):
moveRight = False
moveLeft = True
if event.key == K_RIGHT or event.key == ord('d'):
moveLeft = False
moveRight = True
if event.key == K_UP or event.key == ord('w'):
moveDown = False
moveUp = True
if event.key == K_DOWN or event.key == ord('s'):
moveUp = False
moveDown = True
if event.type == KEYUP:
if event.key == K_ESCAPE:
pygame.quit()
sys.exit()
if event.key == K_LEFT or event.key == ord('a'):
moveLeft = False
if event.key == K_RIGHT or event.key == ord('d'):
moveRight = False
if event.key == K_UP or event.key == ord('w'):
moveUp = False
if event.key == K_DOWN or event.key == ord('s'):
moveDown = False
if event.key == ord('x'):
player.top = random.randint(0, WINDOWHEIGHT - player.height)
player.left = random.randint(0, WINDOWWIDTH - player.width)
矢印キーは正常に機能しますが、WASDキーはDvorakと同じ方法でキーボード上に広がります。したがって、「A」は両方のレイアウトで同じ場所にあり、「W」はQWERTYのコンマキーにあります。a
代わりにe
、、、,
およびo
キーを探すようにコードを変更すると、期待どおりに機能します。
Pygameに正しいレイアウトを使用させるにはどうすればよいですか?