2014-07-19 62 views
1

當我使用blit函數時,它不會刪除先前加載的精靈來讓精靈移動,直到我調用「display.fill(bgcolor)」函數。問題是我有一個五彩的背景。那麼如何在不影響背景的情況下更新圖像? 注意 - 已經嘗試過 「pygame.display.update()」 和 「pygame.display.flip()」 - 它並不能幫助:(python pygame blit函數

class states(): 
def __init__(self, goku1,goku2, x, y): 
    self.image=goku1 
    keys=pygame.key.get_pressed() 
    if keys[K_RIGHT]: 
     self.image=goku2 
    if keys[K_LEFT]: 
     self.image=goku2 

while True: 
pygame.display.flip() 
pygame.display.update() 
obj=states(goku1, goku2, x, y) 

call=position() 
DISPLAYSURF.blit(obj.image, (x, y)) 

我堅持長期:(

回答

0

你首先位塊傳輸的背景,然後針對的blit正在移動精靈新的位置這將是這個樣子:。

window= pygame.display.set_mode(WINDOWSIZE, 0, 32) 

while True: 
    #update events 

    window.blit(your_multi_colored_background, (0, 0)) 
    window.blit(obj.image, (x, y)) 
    pygame.display.update() 

希望這有助於

+0

謝謝,它的工作..很有意思,有沒有什麼辦法(語法),我們可以blit使用矩形和填充顏色功能簡單繪製的背景? – user3856492

0

BLIT從來沒有刪除一個元素 - 它不能 - 所有傳播元素創建一個位圖。

您必須在所有循環中再次blit所有元素。

或者您必須在blit sprite之前保留背景的一部分,稍後再使用它來代替sprite來移除它。

您也可以使用帶參數的pygame.display.update()來僅使背景的某些部分溢出。