1
PyGameで私の最初のゲームプロジェクトに取り組んでいますが、キー入力ができません。 (ビッグコードについて申し訳ありませんが、私は推測PyGameでキー入力を実装する方法は?
from pygame import *
knightpic = image.load('D:\\Game Dev\\Project 1 - Python\\knight01.png')
bushpic = image.load('D:\\Game Dev\\Project 1 - Python\\bush02.png')
done = False
kx = 500
ky = 400
bushx = 700
bushy = 600
init()
screen = display.set_mode((1000, 800))
display.set_caption('Protect the queen !')
while done == False:
screen.fill(0)
screen.blit(knightpic, (kx, ky))
screen.blit(bushpic, (bushx, bushy))
display.update()
time.delay(1)
keys = pygame.key.get_pressed()
if keys[K_LEFT]:
bushx += 1
if keys[K_RIGHT]:
bushx -= 1
if keys[K_DOWN]:
bushy += 1
if keys[K_UP]:
bushy -= 1
:
は私がインターネット上に成り立っている(作業)のスクリプトをコピーして、私の好みにそれを修正しようとすると、ここでは次のようになります。それは必要ありませんが、ここで使用されているほとんどの機能に慣れていないため、私には見えない問題が含まれている可能性があります)。
私はこの最後の部分を自分で行いました。残り。ゴールはブッシュをナイトに対して相対的に動かすことです。 Ctrl + Eのときは小さなナイトとブッシュが見えますが、キーを押したときは何も表示されません。
読んでいただきありがとうございました。
サイドノート: 'from pygame import *'ではなく '' import pygame'を使用してください。これはバグを避けるのに役立ち、通常はより読みやすくなります。 'time.delay(1)'の代わりに['pygame.time.Clock'](http://www.pygame.org/docs/ref/time.html#pygame.time.Clock)を使用して、引数としてのフレームレートを指定したフレームごとに 'tick 'メソッドを実行します(例を検索する)。 – skrx
'import pygame'はここでは動作しません。私は、この種のアルゴリズムのいくつかの基本が明らかに欠けていると思う。どのように機能が動作するか説明してもらえますか? 'pygame.time.Clock'と' pygame.event.get() 'です。 – Pypaut
main whileループの前にクロックインスタンスを作成する必要があります: 'clock = pygame.time.Clock()'。 whileループで 'clock.tick(maximum_fps)'を呼び出して、ゲームを 'maximum_fps'レートに制限します。つまり、あなたのゲームは、例えば60fpsよりも速く動作するわけではなく、必要以上にCPUパワーを消費しません。 – skrx