Pygame更新显示

时间:2017-03-11 23:24:56

标签: python pygame

我正在编写一个程序,其中传感器(白色圆圈)在地图上移动以覆盖事物。我计算了覆盖物的数量(小白点),这是正确的数字。但旧的覆盖物和传感器(白色圆圈)仍然在屏幕上。如何更新显示以便屏幕上只显示最新的对象(圆圈路径中不应有红点,并且不应显示圆圈路径历史记录)。My display

这是我的显示代码。每帧都会调用它。

    def _drawMap(self,ticks):
    # draw the map
    # draw the boundary
    boundary = self._polygonCoordinationTransformation(self.data.boundary_polygon_list)
    pygame.draw.polygon(self.screen, BLUE, boundary, LINEWIDTH)

    # draw obstacles
    for polygon in self.data.obstacles_list:
        polygon = self._polygonCoordinationTransformation(polygon)
        pygame.draw.polygon(self.screen, BLUE, polygon, LINEWIDTH)

    # draw agents
    self._executeSegment(self.agentsGroup.sprites()[0],(5,10),ticks)
    for agent in self.agentsGroup:
        pygame.draw.circle(self.screen, WHITE, agent.rect.center, self.data.sensor_range * self.scaleForMap,LINEWIDTH)

    # draw items
    self.updateUnseenItems()
    for itemObj in self.unseenItemGroup:
        pygame.draw.rect(self.screen, RED, itemObj, LINEWIDTH)

1 个答案:

答案 0 :(得分:3)

在pygame中,你无法清除屏幕 - 而是将背景重新叠加回当前那里的顶部。

对同一个问题here有一个很好的答案。

编辑:在您的情况下,您可能希望用黑色填充屏幕:

screen.fill( (0,0,0) )