2017-03-11 94 views
0

我正在編寫一個程序,其中傳感器(白色圓圈)在地圖上移動以覆蓋事物。我計算了覆蓋物的數量(小白點),這是正確的數字。但舊的覆蓋物和傳感器(白色圓圈)仍然在屏幕上。如何更新顯示屏,以便只有最新的對象在屏幕上(圓形路徑中不應有紅色圓點,並且不應顯示圓形路徑歷史記錄)。 My displayPygame更新顯示

這是我的顯示代碼。它被調用每一幀。

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) 

回答

3

在pygame中,您無法清除屏幕 - 而是將背景重新覆蓋在當前存在的頂部。

對於同一個問題here有一個很好的答案。

編輯:在你的情況,你可能要填寫屏幕與黑色:

screen.fill((0,0,0)) 
+1

謝謝!我將這添加爲qustion中的第一行函數,現在它正常工作。 –

+0

不客氣,項目好運:) –