本文整理汇总了Python中ChaseBallTransitions.shouldTurnToBall_ApproachBall方法的典型用法代码示例。如果您正苦于以下问题:Python ChaseBallTransitions.shouldTurnToBall_ApproachBall方法的具体用法?Python ChaseBallTransitions.shouldTurnToBall_ApproachBall怎么用?Python ChaseBallTransitions.shouldTurnToBall_ApproachBall使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ChaseBallTransitions
的用法示例。
在下文中一共展示了ChaseBallTransitions.shouldTurnToBall_ApproachBall方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: chase
# 需要导入模块: import ChaseBallTransitions [as 别名]
# 或者: from ChaseBallTransitions import shouldTurnToBall_ApproachBall [as 别名]
def chase(player):
"""
Method to determine which chase state should be used.
We dump the robot into this state when we our switching from something else.
"""
player.isChasing = True
player.hasAlignedOnce = False
if player.brain.playbook.role == pbc.GOALIE:
if transitions.shouldScanFindBall(player):
return player.goNow('scanFindBall')
elif transitions.shouldApproachBall(player):
return player.goNow('approachBall')
elif transitions.shouldKick(player):
return player.goNow('waitBeforeKick')
elif transitions.shouldTurnToBall_ApproachBall(player):
return player.goNow('turnToBall')
else:
return player.goNow('scanFindBall')
if transitions.shouldScanFindBall(player):
return player.goNow('scanFindBall')
elif transitions.shouldApproachBallWithLoc(player):
return player.goNow('approachBallWithLoc')
elif transitions.shouldApproachBall(player):
return player.goNow('approachBall')
elif transitions.shouldKick(player):
return player.goNow('waitBeforeKick')
elif transitions.shouldTurnToBall_ApproachBall(player):
return player.goNow('turnToBall')
else:
return player.goNow('scanFindBall')
示例2: approachBallWalk
# 需要导入模块: import ChaseBallTransitions [as 别名]
# 或者: from ChaseBallTransitions import shouldTurnToBall_ApproachBall [as 别名]
def approachBallWalk(player):
"""
Method that is used by both approach ball and dribble
We use things as to when we should leave and how we should walk
"""
if player.brain.playbook.role != pbc.GOALIE:
if transitions.shouldNotGoInBox(player):
return player.goLater('ballInMyBox')
elif transitions.shouldChaseAroundBox(player):
return player.goLater('chaseAroundBox')
elif transitions.shouldApproachBallWithLoc(player):
return player.goNow('approachBallWithLoc')
elif transitions.shouldTurnToBall_ApproachBall(player):
return player.goLater('turnToBall')
elif not player.brain.tracker.activeLocOn and \
transitions.shouldScanFindBall(player):
return player.goLater('scanFindBall')
elif player.brain.tracker.activeLocOn and \
transitions.shouldScanFindBallActiveLoc(player):
return player.goLater('scanFindBall')
elif transitions.shouldAvoidObstacleDuringApproachBall(player):
return player.goLater('avoidObstacle')
# Determine our speed for approaching the ball
ball = player.brain.ball
if player.brain.playbook.role == pbc.GOALIE and goalTran.dangerousBall(player):
return player.goNow('approachDangerousBall')
if ball.dist < constants.APPROACH_WITH_GAIN_DIST:
sX = MyMath.clip(ball.dist*constants.APPROACH_X_GAIN,
constants.MIN_APPROACH_X_SPEED,
constants.MAX_APPROACH_X_SPEED)
else :
sX = constants.MAX_APPROACH_X_SPEED
# Determine the speed to turn to the ball
sTheta = MyMath.clip(ball.bearing*constants.APPROACH_SPIN_GAIN,
-constants.APPROACH_SPIN_SPEED,
constants.APPROACH_SPIN_SPEED)
# Avoid spinning so slowly that we step in place
if fabs(sTheta) < constants.MIN_APPROACH_SPIN_MAGNITUDE:
sTheta = 0.0
# Set our walk towards the ball
if ball.on:
player.setSpeed(sX,0,sTheta)
return player.stay()
示例3: approachDangerousBall
# 需要导入模块: import ChaseBallTransitions [as 别名]
# 或者: from ChaseBallTransitions import shouldTurnToBall_ApproachBall [as 别名]
def approachDangerousBall(player):
if player.firstFrame():
player.stopWalking()
#print "approach dangerous ball"
#single steps towards ball and goal with spin
player.setSteps(0, 0, 0, 0)
if not goalTran.dangerousBall(player):
return player.goLater('approachBall')
if transitions.shouldScanFindBall(player):
return player.goLater('scanFindBall')
elif transitions.shouldTurnToBall_ApproachBall(player):
return player.goLater('turnToBall')
elif transitions.shouldSpinFindBall(player):
return player.goLater('spinFindBall')
return player.stay()
示例4: approachBall
# 需要导入模块: import ChaseBallTransitions [as 别名]
# 或者: from ChaseBallTransitions import shouldTurnToBall_ApproachBall [as 别名]
def approachBall(player):
"""
Once we are alligned with the ball, approach it
"""
if player.firstFrame():
player.hasAlignedOnce = False
player.brain.tracker.trackBall()
player.brain.CoA.setRobotGait(player.brain.motion)
#if player.brain.ball.locDist > constants.APPROACH_ACTIVE_LOC_DIST:
if transitions.shouldActiveLoc(player):
player.brain.tracker.activeLoc()
else :
player.brain.tracker.trackBall()
if player.penaltyKicking and \
player.ballInOppGoalBox():
return player.goNow('penaltyBallInOppGoalbox')
# Switch to other states if we should
if player.brain.playbook.role == pbc.GOALIE:
if transitions.shouldKick(player):
return player.goNow('waitBeforeKick')
elif transitions.shouldPositionForKick(player):
return player.goNow('positionForKick')
elif transitions.shouldTurnToBall_ApproachBall(player):
return player.goLater('turnToBall')
elif not player.brain.tracker.activeLocOn and \
transitions.shouldScanFindBall(player):
return player.goLater('scanFindBall')
else:
if transitions.shouldDribble(player):
return player.goNow('dribble')
elif transitions.shouldKick(player):
return player.goNow('waitBeforeKick')
elif transitions.shouldPositionForKick(player):
return player.goNow('positionForKick')
return approachBallWalk(player)