9 return self._objectList
12 self._objectList.append(obj)
15 def remove(self, obj):
16 self._objectList.remove(obj)
19 while self._pushFree():
23 for a in self._objectList:
24 for b in self._objectList:
25 if not self._checkHit(a, b):
27 posDiff = a.getPosition() - b.getPosition()
28 if posDiff[0] == 0.0 and posDiff[1] == 0.0:
30 if abs(posDiff[0]) > abs(posDiff[1]):
34 aPos = a.getPosition()
35 bPos = b.getPosition()
36 center = (aPos[axis] + bPos[axis]) / 2
37 distance = (a.getSize()[axis] + b.getSize()[axis]) / 2 + 0.1
40 aPos[axis] = center + distance / 2
41 bPos[axis] = center - distance / 2
47 def _checkHit(self, a, b):
50 posDiff = a.getPosition() - b.getPosition()
51 if abs(posDiff[0]) < (a.getSize()[0] + b.getSize()[0]) / 2 and abs(posDiff[1]) < (a.getSize()[1] + b.getSize()[1]) / 2: