2012-10-24 103 views
0

我在Pygame中移動屏幕時可以看到這個圖片。我想要做的是每隔一段時間輪換一次。因此,我希望它以image1.png開頭,然後在頁面中移動,在human1.png和human2.png之間切換,然後在image1.png上完成。這可能嗎?在Pygame中移動時替換圖片

我的代碼是:

if (human1_position.left <= 555): 
    human1_position = human1_position.move(2, 0) # move first human 
    pygame.display.update() 
else: 
    move = STOP 
screen.blit(human1, human1_position) 

感謝

回答

1

這裏是一個可能的解決方案:

# Before main loop 
human_files = ["human1.png", "human2.png"] 
human_sprites = [pygame.image.load(filename).convert_alpha() for filename in human_files] 
human1_index = 0 

... 

# During main loop 
if (human1_position.left <= 555): 
    human1_position = human1_position.move(2, 0) # move first human 
    human1_index = (human_index + 1) % len(human_sprites) # change sprite 
else: 
    move = STOP 
    human1_index = 0 
human1 = human_sprites[human1_index] 
screen.blit(human1, human1_position) 
pygame.display.update() 

我感動的更新()調用,它應該會出現每幀只有一次畢竟已被繪製。

+0

關於更新問題。你當然是對的。但是如果你想在pygame中獲得一個體面的幀率,我的exp表明你必須切換到只更新你改變的rects,而不是整個顯示器(與原始問題無關) – kratenko

+0

@kratenko我同意。考慮到你必須跟蹤每個更新的矩形,然後每幀只調用一次update()。但這是一個全新的問題(性能相關),也許samiles不需要這種優化。 – pmoleri