2013-12-21 43 views
0

永久的背景我有哪裏我使用鼠標控制移動對象的程序。創建於pygame的

screen.fill(255,255,255) 

什麼我想現在要做的是有背景所產生的背景我的方法做:當物體移動時,程序以便有不使用對象的小徑屏幕重置爲純白色。

black = (0,0,0) 
brown = (218,134,10) 
white = (255,255,255) 
pygame.draw.rect(screen,white,(0,0,1000,600)) 

first =pygame.draw.rect(screen,brown,(150,150,50,400),0) 
second = pygame.draw.rect(screen,brown,(450,150,50,400),0) 
third = pygame.draw.rect(screen,brown,(750,150,50,400),0) 

first_out = pygame.draw.rect(screen,black,(150,150,50,400),2) 
second_out = pygame.draw.rect(screen,black,(450,150,50,400),2) 
third_out= pygame.draw.rect(screen,black,(750,150,50,400),2) 

如何讓我的背景變爲每次移動對象時刷新的背景?

回答

0

,而不是直接在屏幕表面上繪圖,您應該創建一個新的表面,我們稱之爲background_surface

通過這樣做,你將只需要背景一次(在你的應用程序的開始)和任何事後塊傳輸將完成快了很多,因爲沒有pygame.draw.xxx正在做。

要與background_surface填滿屏幕表面時,你就用screen.blit()


快速片段:

WIDTH, HEIGHT = 800, 600 
background_surface = pygame.Surface((WIDTH, HEIGHT)) 

# do all the drawings on the background surface 
background_surface.fill((255, 255, 255)) 

while application_running: 
    # processinput 
    # update objects 
    # draw everything 
    screen.blit(background_surface, (0, 0)) 
    pygame.display.update() 
+0

這只是給了一個錯誤說background_surface沒有定義 – user3029845

+0

這是造成'background_surface'被淘汰的範圍外。解決這個錯誤應該不會太麻煩。我提供的代碼僅僅是一個例子。 –