Esempio n. 1
0
def endGameSequence(centerPos1, centerPos2, rotationRobot1, rotationRobot2, distance, buffer, speed, displaywidth, displayheight):
    distance1 = distance
    distance2 = distance
    futureForward1 = [centerPos1[0] + speed * math.cos(rotationRobot1), centerPos1[1] + speed * math.sin(rotationRobot1)]
    futureBackward1 = [centerPos1[0] - speed * math.cos(rotationRobot1), centerPos1[1] - speed * math.sin(rotationRobot1)]

    if not Line_Functions.isHittingAnyBoundary(futureForward1, distance, 30, displaywidth, displayheight) and not Line_Functions.isIntersecting(futureBackward1, centerPos2, distance, distance, 20):
        print "Move Forward 1"
        startBounce(0, 'f', 0.5)

    elif not Line_Functions.isHittingAnyBoundary(futureBackward1, distance1, 30, displaywidth, displayheight)and not Line_Functions.isIntersecting(futureBackward1, centerPos2, distance1, distance2, 20):
        print "Move Backward 1"
        startBounce(0, 'b', 0.5)
    else:
        print "Stop 2"
        stop(1)

    futureForward2 = [centerPos2[0] + speed * math.cos(rotationRobot2), centerPos2[1] + speed * math.sin(rotationRobot2)]
    futureBackward2 = [centerPos2[0] - speed * math.cos(rotationRobot2), centerPos2[1] - speed * math.sin(rotationRobot2)]

    if not Line_Functions.isHittingAnyBoundary(futureForward2, distance2, 30, displaywidth, displayheight)and not Line_Functions.isIntersecting(centerPos1, futureForward2, distance1, distance2, 20):
        print "Move Forward 2"
        startBounce(1, 'f', 0.5)
    elif not Line_Functions.isHittingAnyBoundary(futureBackward2, distance2, 30, displaywidth, displayheight)and not Line_Functions.isIntersecting(centerPos1, futureBackward2, distance1, distance2, 20):
        print "Move Backward 2"
        startBounce(1, 'b', 0.5)
    else:
        print "Stop 2"
        stop(1)
    speed = 80
    rotatedPoint1 = [(math.cos(-1 * rotationRobot1) * distance1), (math.sin(-1 * rotationRobot1) * distance1)]
    rotatedPoint2 = [(math.cos(-1 * rotationRobot2) * distance2), (math.sin(-1 * rotationRobot2) * distance2)]

    if stop == False:
        Movement.doAuto()
    else:
        print "AHHHHHH"
        Movement.reset()

    collision = False
    # Line_Functions.isHittingBoundary(centerRobot1,distance1,30,'left', displaywidth, displayheight)
    # Check for robot collision

    if Line_Functions.isIntersecting(centerRobot1, centerRobot2, distance1, distance2, 20):

        if collisionPrecedent:
            collision = True

        futureForward1 = [
            centerRobot1[0] + speed * math.cos(rotationRobot1),
            centerRobot1[1] + speed * math.sin(rotationRobot1),
        ]
        futureBackward1 = [
            centerRobot1[0] - speed * math.cos(rotationRobot1),
            centerRobot1[1] - speed * math.sin(rotationRobot1),
        ]
        # pygame.draw.circle(gameDisplay, green,(futureBackward1), 15, 0)

        # print "Robot 1 Boundary, backward: ", Line_Functions.isHittingAnyBoundary(futureBackward1, distance1, 30, displaywidth, displayheight)
    #####
    #Check for between robot collisions
    #####

    speed = 80
    rotatedPoint1 = [(math.cos(-1 * rotationRobot1) * distance1), (math.sin(-1 * rotationRobot1) * distance1)]
    rotatedPoint2 = [(math.cos(-1 * rotationRobot2) * distance2), (math.sin(-1 * rotationRobot2) * distance2)]

    Movement.doAuto()

    collision = False
    #Line_Functions.isHittingBoundary(centerRobot1,distance1,30,'left', displaywidth, displayheight)
    #Check for robot collision

    if(Line_Functions.isIntersecting(centerRobot1, centerRobot2, distance1, distance2, 20)):

        if collisionPrecedent:
            collision = True

        futureForward1 = [centerRobot1[0] + speed * math.cos(rotationRobot1), centerRobot1[1] + speed * math.sin(rotationRobot1)]
        futureBackward1 = [centerRobot1[0] - speed * math.cos(rotationRobot1), centerRobot1[1] - speed * math.sin(rotationRobot1)]
        #pygame.draw.circle(gameDisplay, green,(futureBackward1), 15, 0)

        #print "Robot 1 Boundary, backward: ", Line_Functions.isHittingAnyBoundary(futureBackward1, distance1, 30, displaywidth, displayheight)
        #print "Robot 1 Collision, backward: ", Line_Functions.isIntersecting(futureBackward1, centerRobot2, distance1, distance2, 20)
        #print "Center 1: ", centerRobot1, " ", "Future Backward 1: ", futureBackward1, " ", "Center 2: ", centerRobot2

        if not Line_Functions.isHittingAnyBoundary(futureForward1, distance1, 30, displaywidth, displayheight) and not Line_Functions.isIntersecting(futureForward1, centerRobot2, distance1, distance2, 20):
                print "Move Forward 1"
                Movement.startBounce(0, 'f', 0.5)