在图像中,红色轨迹是当我在精灵周围添加边界矩形时 pygame 创建的轨迹。精灵也可以做到这一点,最简单的解决方案是在每次重绘后将表面清除为黑色。然而,尝试在整个主表面上这样做并不是一个好主意。我怎样才能解决这个问题?
通常你会这样做:
def draw():
# fill screen with solid color.
# draw, and flip/update screen.
但是,您可以只更新屏幕的脏部分。看pygame.display.update():
pygame.display.update()
更新软件显示的部分屏幕
update(rectangle=None) -> None
update(rectangle_list) -> None
该函数就像用于软件显示的 pygame.display.flip() 的优化版本。它只允许一部分
要更新的屏幕的一部分,而不是整个区域。如果没有争论
通过它会更新整个 Surface 区域,例如
pygame.display.flip()。
您可以向函数传递单个矩形或一系列矩形。一次传递多个矩形比传递多个矩形更有效
使用单个或部分列表多次调用更新
矩形。如果传递一系列矩形,则可以安全地包含
列表中没有值,将被跳过。
最好结合使用RenderUpdates,这是一个Sprite.Group
:
pygame.sprite.RenderUpdates
跟踪脏更新的组子类。
RenderUpdates(*sprites) -> RenderUpdates
该类派生自 pygame.sprite.Group()。它有一个扩展的draw()方法来跟踪屏幕的变化区域。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)