2015-08-03 116 views
0

app2圖像應從右側滑入,但不會出現。兩幅圖像都是1920x1080。我怎樣才能解決這個問題?pygame圖像不會出現

import pygame, sys 
from pygame.locals import* 
number=1 
screen = pygame.display.set_mode((1920,1080)) 
app1=pygame.image.load("app1.jpg").convert() 
app2=pygame.image.load("app2.jpg").convert() 
clock = pygame.time.Clock() 
app1x=0 
app2x=1920 
loop=True 
while loop: 
    screen.fill((0,0,0)) 
    for event in pygame.event.get(): 
     if event.type==KEYDOWN: 
      if event.key==K_RIGHT: 
       print ("right") 
       number=number+1 
     if event.type==pygame.QUIT: 
      print("l") 
      loop=False 
      pygame.quit() 
      quit() 
    screen.blit(app1, (app1x,0)) 
    if number==1: 
     screen.blit(app1, (app1x,0)) 
    if number==2: 
     if app2x==0: 
      print ("d") 
     else: 
     app2x=app2x-1 
     app1x=app1x-1 
clock.tick(20) 
pygame.display.update() 
+0

嘗試在'screen.blit(app1,(app1x,0))'後面執行'pygame.display.update()'。 –

回答

0

您只更新屏幕的一部分,以及時鐘不在while循環內。下面是使用你的代碼的例子:

while loop: 
     screen.fill((0,0,0)) 
     for event in pygame.event.get(): 
      if event.type==KEYDOWN: 
       if event.key==K_RIGHT: 
        print ("right") 
        number=number+1 
      if event.type==pygame.QUIT: 
       print("l") 
       loop=False 
     screen.blit(app1, (app1x,0)) 
     if number==1: 
      screen.blit(app1, (app1x,0)) 
     if number==2: 
      if app2x==0: 
       print ("d") 
      else: 
       app2x=app2x-1 
       app1x=app1x-1 
     pygame.display.flip() 
     clock.tick(20) 
    pygame.quit() 

另外,還要注意如何我整個while循環之後移動pygame.quit()。這使得當loop爲假並結束時,pygame也會退出。移動pygame.quit()只是爲了稍微清理代碼,並且不會顯着影響代碼。

乾杯!