私はpygameを使用してゲームを作成しようとしていますが、変数に基づいてキーゲームを確認するためにpygameを取得するのに苦労しています。pygameの可変キープレスの確認方法
私がこれまで持っているコードは次のとおりです。
import random, pygame, sys
from pygame.locals import *
points=0
pygame.init()
screen = pygame.display.set_mode((600,350))
pygame.display.set_caption("LETTERPRESS")
while True:
FONT = pygame.font.SysFont("Comic Sans MS",30)
Letter=random.randint(1,26)
Letters={
1 :"a",
2 :"b",
3 :"c",
4 :"d",
5 :"e",
6 :"f",
7 :"g",
8 :"h",
9 :"i",
10:"j",
11:"k",
12:"l",
13:"m",
14:"n",
15:"o",
16:"p",
17:"q",
18:"r",
19:"s",
20:"t",
21:"u",
22:"v",
23:"w",
24:"x",
25:"y",
26:"z"}
label = FONT.render(Letters[Letter],1,(255,0,0))
screen.blit(label,(285,160))
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_[Letters[Letter]]:
points +=1
break
コードの問題の一部は次のとおりです。
if event.key == pygame.K_[Letters[Letter]]:
また、あなたは私が私のプログラムをクリーンアップすることができます任意の方法を持っている場合、してください教えてください。
感謝:)
pygame.K_aを使用すると、私は変数を行に印刷するので、実際にはうまくいきませんでした。 ** "label = FONT.render(Letters [Letter]、1、(255,0、 0)) "** 私は辞書を使用しています。私はこれを学んだ最初の方法であり、私が完全に慣れ親しんでいるものに固執したいので、ちょうど辞書を使用しています。 2番目の方法は、 "a"の代わりに "pygame.K_a"というテキストを画面に表示する方法です。 –
これで問題は解決しました。数字を文字に変換する組み込み関数があり、それを使用する必要があります。 –
"FONT.render(chr(Letter + 65)、1(255,0,0))"の修正はうまくいきました。意図しないブロックは、私が前にテキストを編集していたときのちょうどタイプミスでした。誤ってタブを削除しました。ありがとうございます。 :) –