我在做一个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中更新一个表面
- 3. 在非existstent服务未能作曲家更新的依赖
- 4. 作曲更新
- 5. 更新pygame中的文本
- 6. pygame不一致更新
- 7. 更新分数Pygame Pong
- 8. pygame - 更新分数框
- 9. MVC2页面未更新
- 10. 更新页面时更新功能?
- 11. Linq to SQL - 未能更新
- 12. 使用python获取pygame中的曲面中心3.4
- 13. Java面向对象编程:未能更新实例变量
- 14. 刷新页面的更新功能
- 15. 更新Pygame中的显示问题
- 16. pygame播放器没有更新
- 17. Pygame:使用滚动级别更新Reces
- 18. Pygame组更新不需要参数
- 19. Laravel作曲家更新
- 20. 作曲家更新laravel 5.2
- 21. Symfony的作曲家更新
- 22. 作曲家更新失败
- 23. 素面选中列表中未更新
- 24. $范围值未更新侧面菜单
- 25. Databound用户界面未更新
- 26. 更新面板触发器未触发
- 27. 更新面板中的隐藏字段值未正确更新
- 28. Laravel 5作曲家不会更新类未找到
- 29. 侧面滚动Pygame
- 30. Pygame表面太重