0
我現在在Pygame中有2層: 1st:移動的背景圖像 第2層:字符,項目,激光等等,這層明顯位於第一層前面。但是,無論何時嘗試blit第一層(背景),它都會擦除第二層上的任何內容(尤其是激光和其他只出現一定時間的內容)。有沒有辦法,即使背景blits,它不刪除層2的所有內容?如何在不擦除其他圖層的情況下blit背景
在您選擇循環我現在在Pygame中有2層: 1st:移動的背景圖像 第2層:字符,項目,激光等等,這層明顯位於第一層前面。但是,無論何時嘗試blit第一層(背景),它都會擦除第二層上的任何內容(尤其是激光和其他只出現一定時間的內容)。有沒有辦法,即使背景blits,它不刪除層2的所有內容?如何在不擦除其他圖層的情況下blit背景
在您選擇循環你需要做這樣的事情
while True:
screen.blit(background(0,0))
screen.blit(item(100,100))
#etc.
這樣的循環,而blit的背景則位塊傳輸的圖像,然後重新的blit後臺刷新頂部的圖像,然後重新的blit的在上面
這樣一來就會的blit eachlayer一遍又一遍刷新在每次迭代如果循環我可以幫助更多,如果你表現出一定的代碼的youre
總之,沒有圖像。你目前在做不同表面的背景和其他物品的做法很好,並且會簡化你的問題。所有你需要做的就是在每次你將背景拍到背景上時,都會在前面拍攝。真的沒有其他的方式來做到這一點。 – PygameNerd
請參閱http://en.wikipedia.org/wiki/Bit_blit,這裏討論了一些有用的優化方法,特別是骯髒的矩形。 – JonnyRo