2017-01-08 17 views
-2

私はサイトや他の人たちを見て、なぜ私の矢印キーが認識されないように見えるのか考えてみましたパイゲームで私の姿を動かそうとしている。私はいくつかの修正を試みましたが、運はありません。矢印キーを押すとカーソルが端末に移動しますが、ゲームウィンドウには何も表示されません(ゲームウィンドウがアクティブであることを確認しても)。イベントステートメントを印刷すると、マウスだけが認識されているように見えます。Python 3.5.2とPyGame 1.9.2、pygame.event.get()はキーストロークを認識しません

import pygame 
pygame.init() 
black = (0, 0, 0) 
white = (255, 255, 255) 
display_width = 800 
display_height = 600 

gameDisplay = pygame.display.set_mode((display_width, display_height)) 
pygame.display.set_caption('A bit Racey') 

clock = pygame.time.Clock() 
crashed = False 
carImg = pygame.image.load('racecar.png') 


def car(x, y): 
    gameDisplay.blit(carImg, (x, y)) 


x = (display_width * 0.45) 
y = (display_height * 0.8) 
x_change = 0 
car_speed = 0 

while not crashed: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      crashed = True 

     if event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_LEFT: 
       x_change = -5 
      elif event.key == pygame.K_RIGHT: 
       x_change = 5 
     if event.type == pygame.KEYUP: 
      if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: 
       x_change = 0 

    x += x_change 
    gameDisplay.fill(white) 
    car(x, y) 
    clock.tick(60) 
    pygame.display.update() 

pygame.quit() 
quit() 

私は「レースカー」の窓を見るだけで、動かすことはできません。 EDIT 問題を解決していなかった「イベント」タイプミスについての答えは(私は間違いを謝罪20かそこらの異なるバリエーションのいずれかをしようとしたとき、私はタイプミスをしました)。どんなに編集されたコードでも、私は車を動かすことができません。ゲームの表示がアクティブなウィンドウであっても、カーソルはコンソール内を移動します。

+0

昨日や数日前に 'racecar'や' apple'と似たコードを見たことがあります:) – furas

+0

あなたが何を参照しているのか、私の問題に関係ないコードが見つかりません。以下に言及されているタイプミスは、私が使いこなそうとしていたコードの初期のバージョンからのものでした。しかしそれを修正しても私の問題は解決しませんでした。 – Zane

+0

カーソルが端末内を移動すると、pygameウィンドウがフォーカスされていないことになり、バグが発生している可能性があります。私はOSXまたはWindows 10でそれを実行する上で問題はありません。問題を記録するかもしれませんか? –

答えて

1

あなたのコードは機能しません。

あなたはあなたが

for event in pygame.events.get(): 

にタイプミスがあり

Traceback (most recent call last): 
    File "<pyshell#1>", line 26, in <module> 
    for event in pygame.events.get(): 
AttributeError: module 'pygame' has no attribute 'events' 

それは、そのコードは問題なく動作し、私の後pygame.event.get():

sなしeventである必要があります表示されるコンソールで実行してとオブジェクトを移動することができます。

問題のコードが間違っているようです。または、間違ったコードを実行します。

+0

私はそれを働かせようとするときに変更を加えたに違いありません。いずれにせよ、あなたの修正は私のためには機能しません。私は窓の中で車を見ることができますが、矢印キーを押すことは、コンソール内でカーソルを動かすこと以外は何もしません。 – Zane

+0

コンソールでカーソルを動かすと、PyGameウィンドウではなく、コンソールにフォーカスが当てられ、システムはPyGameではなくコンソールにイベントを送信します。それとも、あなたのシステムのタイプだけに問題があるかもしれません。私はLinux Mintを使用していますが、この問題はありません。 – furas

+0

私が言及したように、私はコンソールではなくPyGameウィンドウを集中していると確信しています。私は2日間それを乱している。私はMac OSXを使用しています。私は、コードがうまく動作するチュートリアルビデオを次のビデオに掲載していますが、ビデオの下にあるいくつかのコメントには、まだ修正されていない同様の問題があります。 – Zane

関連する問題