def fixPosCircleRect(self, c1, r2): colPos = util.getCollisionPosition2(util.circleToRect(c1) , r2) if(colPos[0] == 0 or colPos[1] == 0 ): pos = vector2.Vector2(colPos[0],colPos[1]) pos1 = c1.pos() pos2 = r2.pos() if c1.static: r2.setPos(pos2.add(pos)) elif r2.static: r2.setPos(pos1.add(pos.scale(-1) )) else: c1.setPos(pos1.add(pos.scale(-.5))) r2.setPos(pos2.add(pos.scale( .5))) else: pos1 = c1.pos() pos2 = r2.pos() dif = pos2.sub(pos1) if c1.static: r2.setPos(pos2.add(dif)) elif r2.static: c1.setPos(pos1.add(dif.scale(-1))) else: c1.setPos(pos1.add(dif.scale(-.5)) ) r2.setPos(pos2.add(dif.scale( .5)) )
def checkCircleRectCollision(self, c,re): return self.checkCircleCircleCollision(c,util.rectToCircle(re) ) and self.checkRectRectCollision( util.circleToRect(),re)