2017-08-06 59 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