2017-08-06 96 views
1

我開始觀看一個關於通過senddex學習pygame的YouTube視頻系列。 我一直在關注他的所有步驟,並且我已經達到了我擁有一輛汽車(圖片)的地步,並且它在一個白色屏幕上。但是,當我把功能,以便能夠移動汽車。下次我跑了它,我看不到我的車。我注意到,當我關閉屏幕時,我可以一秒鐘就看到它。我嘗試過以我能想到的方式搜索這個問題。這可能是我的一個小愚蠢的錯誤。預先感謝您 進口pygame爲什麼我的圖片被遮蓋?

pygame.init() 

display_width = 800 
display_height = 600 

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


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

carImg = pygame.image.load('racecar.png') 

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


x = (display_width * 0.45) 
y = (display_height * 0.6) 

x_change = 0 

crashed = False 

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 
    if 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) 
pygame.display.update() 
clock.tick(60) 

pygame.quit() 
quit() 
+1

請正確縮進您的代碼示例,因爲您的錯誤可能是不正確縮進的結果。 – skrx

回答

0

您的縮進是搞砸了。從for event in pygame.event.get():clock.tick(60)的所有內容都應該縮進以顯示它適合在while not crashed:循環內。此外,crashed = True應縮進顯示它在if event.type == pygame.QUIT:語句中。另外,pygame.KEYDOWNpygame.KEYUP比較應該位於您的for event in pygame.event.get():循環中。最後,您可以通過將某些if s更改爲elif s來提高速度。這是您的代碼的最後一部分的修正版本:

while not crashed: 

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

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

     elif 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) 
    pygame.display.update() 
    clock.tick(60) 

pygame.quit() 
quit() 
+0

非常感謝。我感到非常沮喪 – Andrej