예제 #1
0
파일: Engine.py 프로젝트: DomNomNom/osbot
 def _processRemoving(self):
   while len(self.entityDelQueue):
     e = self.entityDelQueue.pop(0)
     if e in self.groups['all']:
       self.groups['all'].remove(e)
     else:
       # print "was told to delete entity but it was not in the 'all' group: " + repr(e) # DEBUG
       continue
     if Entities.isEntityKind_updating(e):   self.groups['updating'].remove(e)
     if Entities.isEntityKind_physics(e):
       self.space.remove(e.shapes)
       for shape in e.shapes:
         del self.spaceView.shapeToEntity[shape]
       if e.body is not self.space.static_body:
         self.space.remove(e.body)
     if Entities.isEntityKind_visible(e):
       # self.drawLayers[e.drawLayer].remove(e)
       if hasattr(e, 'draw'):
         self.drawCalls[e.drawLayer].remove(e.draw)
       if hasattr(e, 'sprite'):
         e.sprite.delete()
       # for vertexList in e.vertexLists:
       #   vertexList.delete()
     if isinstance(e, Blob):
       del self.blobs[e.id]
예제 #2
0
파일: Engine.py 프로젝트: DomNomNom/osbot
 def _processAdding(self):
   while len(self.entityAddQueue):
     e = self.entityAddQueue.pop(0)
     self.groups["all"].add(e)
     if Entities.isEntityKind_updating(e):   self.groups['updating'].add(e)
     if Entities.isEntityKind_physics(e):
       self.space.add(e.shapes)
       for shape in e.shapes:
         self.spaceView.shapeToEntity[shape] = e
       if e.body is not self.space.static_body:
         self.space.add(e.body)
     if Entities.isEntityKind_visible(e):
       if hasattr(e, 'initGraphics'):
         e.initGraphics(self.drawLayers[e.drawLayer])
       if hasattr(e, 'draw'):
         self.drawCalls[e.drawLayer].append(e.draw)
     if isinstance(e, Blob):
       self.highestBlobId += 1
       e.controller = e.controller(e, self.blobs, self.spaceView)  # initialize the controller
       e.id = self.highestBlobId
       self.blobs[e.id] = e