2017-03-25 28 views
0

私はpythonprogramming.netからPyGameを使うことを学んでいます。私は、ウィンドウに画像を移動するには、現在午前:Pygame:画像が動かない

https://pythonprogramming.net/pygame-tutorial-moving-images-key-input/?completed=/displaying-images-pygame/

あなたがそれをチェックアウトするときに、サイトがダウンしている場合にはここで、私が実行しているコードです。何らかの理由で、私はなぜ、車のイメージが動いていないのかわかりません。私はビデオをフォローしているときにすべてをタイプし、それが動作しないことに気がついたとき、私はコピーして貼り付けて、予測されたパフォーマンスを得ることができませんでした。私はデバッグするイベントを印刷しました(これは私が追加した唯一の行で、サイトからコピーされたコードにはありません)。

import pygame 

pygame.init() 

display_width = 800 
display_height = 600 

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

black = (0,0,0) 
white = (255,255,255) 

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) 

    print(event) # added for debugging 

    pygame.display.update() 
    clock.tick(60) 

pygame.quit() 
quit() 

私はまだ何の動きをスパイダーを使用していないが、私に凍結をポップアップウィンドウを持っていたし、私は私のMac.IがPyCharmと端末に切り替えた上でスパイダーを終了しなければならなかったし、両方には凍結がなかったことがわかったが、 。端末上

プリントアウトプットされました:

libpng warning: iCCP: known incorrect sRGB profile 
<Event(4-MouseMotion {'pos': (364, 569), 'rel': (364, 569), 'buttons': (0, 0, 0)})> 
<Event(5-MouseButtonDown {'pos': (364, 569), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (364, 569), 'button': 1})> 
<Event(4-MouseMotion {'pos': (491, 27), 'rel': (127, -542), 'buttons': (0, 0, 0)})> 
^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
^[[D^[[D^[[D<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
^[[D^[[D^[[D^[[C^[[C<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(6-MouseButtonUp {'pos': (491, 27), 'button': 1})> 
<Event(5-MouseButtonDown {'pos': (491, 27), 'button': 1})> 
<Event(12-Quit {})> 

私はコードの最初の行がHow do I disable the libpng warning? (python, pygame)からの警告であり、この方法でコードに影響を与えるべきではないことを理解しています。

+0

コードは私にとっても正しく動作します。 MouseButtonDown/Up'イベントのみを表示するので、マウスボタンで車を移動しようとしていますか?矢印キーで移動してください。 – skrx

答えて

0

申し訳ありませんが、ドキュメントを読んでいるうちに変更されていると思います。それは私が徹底的に謝罪することをたくさん変えました。私が指摘したいことの一つは、ゲームが始まる前に背景を記入するのがよい習慣であるということです。私はこれをさらに見て、私はそれを自分でテストするつもりです。

編集:私はちょうどそれをテストし、私のためにそれは完全に正常に動作します。それはあなたのキーボードレイアウトかもしれませんが、私の唯一の考えは、ウィンドウを選択しましたか?

+0

具体的にいくつか例を挙げてください。 – heretoinfinity

+0

コピー貼り付けするとコードの問題ではないようです – user140052

関連する問題