def __init__(self, name, passerNo, shooterNo): super(PassShoot, self).__init__(name) # 1 passerがボールに近づく FIRST = ParallelOne("FIRST") FIRST.add_child( Kick.SetPassTarget("Set pass target", passerNo, shooterNo)) FIRST.add_child(Kick.Approach("Passer approach", passerNo)) FIRST.add_child(BaseSkill.SuccessTimer("SuccessTimer1.0", 1.0)) self.add_child(FIRST) # 2 shooterがshoot位置に移動する SECOND = ParallelOne("SECOND") SECOND.add_child(BaseSkill.WaitToReceive("Shooter wait", shooterNo)) SECOND.add_child( Analyst.IsOnTarget("Shooter is on target", shooterNo, 0.5)) SECOND.add_child(BaseSkill.SuccessTimer("SuccessTimer2.0", 3.0)) self.add_child(SECOND) # # 3 passerがボールを蹴る THIRD = ParallelAll("THIRD") THIRD.add_child( Kick.SetPassTarget("Set pass target", passerNo, shooterNo)) THIRD.add_child(Kick.Pass("PASS", passerNo)) # 3 shooterが受け取りshootする THIRD.add_child(Kick.CalcuKickTarget("CalcuKickTarget", shooterNo)) THIRD.add_child(Kick.ReceiveShoot("ReceiveShoot", shooterNo)) THIRD.add_child(BaseSkill.FailureTimer("FailureTimer7.0", 10.0)) INVERT = Invert("Invert") INVERT.add_child(Analyst.IsBaller("IsBaller", shooterNo, 1.0)) THIRD.add_child(INVERT) self.add_child(THIRD)
def __init__(self, name, num1, num2): super(PassAndPass, self).__init__(name) wait1X, wait1Y, wait1Yaw = (-2.0, 2.0, -math.pi*0.5) wait2X, wait2Y, wait2Yaw = (-2.0, -2.0, math.pi*0.5) PLAYER1 = Sequence("player1") wait_ = ParallelOne("wait1") wait_.add_child(Analyst.BallEnteringQuadrant("ballEntering",2)) wait_.add_child(BaseSkill.Stay("stay1", num1, wait1X, wait1Y, wait1Yaw)) pass_ = ParallelOne("pass1") pass_.add_child(Kick.SetPassTarget("setTarget1",num1, num2)) pass_.add_child(Kick.Pass("GoPassing1", num1)) pass_.add_child(Analyst.BallEnteringQuadrant("ballEntering",3)) PLAYER1.add_child(wait_) PLAYER1.add_child(pass_) PLAYER1.add_child(GoToPosition("goto1",num1,wait1X,wait1Y,wait1Yaw)) self.add_child(PLAYER1) PLAYER2 = Sequence("player2") wait_ = ParallelOne("wait2") wait_.add_child(Analyst.BallEnteringQuadrant("ballEntering",3)) wait_.add_child(BaseSkill.Stay("stay2", num2, wait2X, wait2Y, wait2Yaw)) pass_ = ParallelOne("pass2") pass_.add_child(Kick.SetPassTarget("setTarget2",num2, num1)) pass_.add_child(Kick.Pass("GoPassing2", num2)) pass_.add_child(Analyst.BallEnteringQuadrant("ballEntering",2)) PLAYER2.add_child(wait_) PLAYER2.add_child(pass_) PLAYER2.add_child(GoToPosition("goto2",num2,wait2X,wait2Y,wait2Yaw)) self.add_child(PLAYER2)