我正在编写一个程序,其中传感器(白色圆圈)在地图上移动以覆盖事物。我计算了覆盖物的数量(小白点),这是正确的数字。但旧的覆盖物和传感器(白色圆圈)仍然在屏幕上。如何更新显示以便屏幕上只显示最新的对象(圆圈路径中不应有红点,并且不应显示圆圈路径历史记录)。
这是我的显示代码。每帧都会调用它。
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)
答案 0 :(得分:3)
在pygame中,你无法清除屏幕 - 而是将背景重新叠加回当前那里的顶部。
对同一个问题here有一个很好的答案。
编辑:在您的情况下,您可能希望用黑色填充屏幕:
screen.fill( (0,0,0) )