def pushFree(self, staticObj=None): if staticObj is None: for obj in self._objectList: self.pushFree(obj) return if not self.checkPlatform(staticObj): return pushList = [] for obj in self._objectList: if obj == staticObj or not self.checkPlatform(obj): continue if self._oneAtATime: v = polygon.polygonCollisionPushVector( obj._headAreaMinHull + obj.getPosition(), staticObj._boundaryHull + staticObj.getPosition()) else: v = polygon.polygonCollisionPushVector( obj._boundaryHull + obj.getPosition(), staticObj._boundaryHull + staticObj.getPosition()) if type(v) is bool: continue obj.setPosition(obj.getPosition() + v * 1.01) pushList.append(obj) for obj in pushList: self.pushFree(obj)
def pushFree(self, staticObj): if not self.checkPlatform(staticObj): return pushList = [] for obj in self._objectList: if obj == staticObj or not self.checkPlatform(obj): continue if self._oneAtATime: v = polygon.polygonCollisionPushVector(obj._headAreaMinHull + obj.getPosition(), staticObj._boundaryHull + staticObj.getPosition()) else: v = polygon.polygonCollisionPushVector(obj._boundaryHull + obj.getPosition(), staticObj._boundaryHull + staticObj.getPosition()) if type(v) is bool: continue obj.setPosition(obj.getPosition() + v * 1.01) pushList.append(obj) for obj in pushList: self.pushFree(obj)
def _pushFree(self): for a in self._objectList: for b in self._objectList: if a == b: continue v = polygon.polygonCollisionPushVector(a._boundaryHull + a.getPosition(), b._boundaryHull + b.getPosition()) if type(v) is bool: continue a.setPosition(a.getPosition() + v / 2.0) b.setPosition(b.getPosition() - v / 2.0) return True return False
def _pushFree(self): for a in self._objectList: for b in self._objectList: if a == b: continue v = polygon.polygonCollisionPushVector( a._boundaryHull + a.getPosition(), b._boundaryHull + b.getPosition()) if type(v) is bool: continue a.setPosition(a.getPosition() + v / 2.0) b.setPosition(b.getPosition() - v / 2.0) return True return False