示例#1
0
 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)) )
示例#2
0
 def checkCircleRectCollision(self, c,re):
     return self.checkCircleCircleCollision(c,util.rectToCircle(re) ) and self.checkRectRectCollision( util.circleToRect(),re)