2015-07-21 62 views
1

圖像是一張紙牌。我們使用pygame 4.5社區版和pycharm 2.6.9,因爲2.7不支持pygame(這是一所學校)。這裏是代碼:嘗試使用pygame.display.update在pygame中顯示png文件,並顯示不到一秒鐘然後消失。

import pygame 
pygame.init() 
picture=pygame.image.load("cards/S01.png") 
pygame.display.set_mode(picture.get_size()) 
main_surface = pygame.display.get_surface() 
main_surface.blit(picture, (0,0)) 
pygame.display.update() 

爲什麼窗口消失?

回答

0

嘗試這種情況:

import pygame 
pygame.init() 
picture=pygame.image.load("cards/S01.png") 
pygame.display.set_mode(picture.get_size()) 
main_surface = pygame.display.get_surface() 
main_surface.blit(picture, (0,0)) 
while True: 
    main_surface.blit(picture, (0,0)) 
    pygame.display.update() 

pygame.display.update()更新的幀。每秒有多個幀,具體取決於您在表面上繪製的內容。

0

問題是,在您更新屏幕pygame.display.update()後,您什麼都不做,程序就會結束。 pygame.display.update()不會阻止。

您需要什麼通常稱爲主循環。這裏有一個事件處理的簡單例子:

import pygame 
pygame.init() 
picture = pygame.image.load("cards/S01.png") 

# display.set_mode already returns the screen surface 
screen = pygame.display.set_mode(picture.get_size()) 

# a simple flag to show if the application is running 
# there are other ways to do this, of course 
running = True 
while running: 

    # it's important to get all events from the 
    # event queue; otherwise it may get stuck 
    for e in pygame.event.get(): 
     # if there's a QUIT event (someone wants to close the window) 
     # then set the running flag to False so the while loop ends 
     if e.type == pygame.QUIT: 
      running = False 

    # draw stuff 
    screen.blit(picture, (0,0)) 
    pygame.display.update() 

這樣,你的應用程序不會,只有當有人關閉窗口。

相關問題