我在做一個pygame遊戲。我有3個曲面:gameDisplay
(其中的字符和背景直接渲染到),guiSurf
和invSurf
我有一個時鐘在覈心pyhon中顯示遊戲時間與pygame字體。我將時鐘分配到guiSurf
,然後在我的遊戲循環I blit guiSurf
和invSurf
到gameDisplay
。我的問題是,時鐘從它原來的位置留下了痕跡。 IE當它從'07:00'變爲'07:01'時,'01'在'00'的開頭,不應該在那裏。我會發布代碼,但像400行。有誰知道我可能做錯了什麼。 Link to a picture of the clock未能更新pygame曲面
1
A
回答
0
確保通過在文本所在的位置將另一圖像進行blitting來「清除」正在打印時間的區域。當您將曲面繪製到屏幕上時,它只會變成一個「曲面」,它總是繪製直到被其他東西覆蓋。你需要清除這個表面之前,你blit其他的東西,否則你會得到你看到的效果。通過在每個遊戲開始時刻簡單調用display_name.fill((0,0,0)),您將「清除」屏幕,然後在沒有溢出效應的情況下重新繪製文本。當然,你必須在每次打勾時將所有東西重新投射到屏幕上,但這不應該成爲一個問題,除非你需要提取數以千計的物品。如果你不想重繪所有東西,那麼在文本上劃一個小矩形,然後重繪它,你的問題應該被解決。
我希望這可以幫助你解決你的問題和快樂的編碼!
0
顯然,時鐘在guiSurf上傳了兩次。我想它會不斷堆疊以前的時間形象(7:00,然後是7:01,然後是7.02等)。在繪製時間之前,您需要清除保持時鐘的表面:clock_surf.fill(clearcolor, clock_surf.get_rect())
。
相關問題
- 1. Pygame雪碧運動,未能更新
- 2. pygame pygame高效地改變曲面
- 3. pygame blitting只更新表面
- 4. pygame的創建曲面
- 5. 存儲pygame曲面對象
- 6. 更新Pygame表面的一個方面
- 7. 在Pygame中更新一個表面
- 8. 將Pygame曲面序列化爲字節
- 9. 做新的pygame曲面必須是.convert()ed嗎?
- 10. SimpleCV 1.3更新&pygame
- 11. Pygame更新顯示
- 12. 曲奇從響應更新在未來
- 13. 在非existstent服務未能作曲家更新的依賴
- 14. 未能更新UIImageView
- 15. 作曲更新
- 16. 作曲家不能自我更新
- 17. 更新pygame中的文本
- 18. Pygame雪碧沒有更新
- 19. pygame - 更新分數框
- 20. pygame不一致更新
- 21. 更新分數Pygame Pong
- 22. MVC3頁面未更新
- 23. MVC2頁面未更新
- 24. HTML頁面未更新
- 25. 結合pygame和扭曲
- 26. 更新面板,添加功能更新
- 27. 更新頁面時更新功能?
- 28. 未能使用LINQ更新
- 29. Linq to SQL - 未能更新
- 30. 未能更新eclipse產品