示例#1
0
        private void PlayDefence()
        {
            ///СДЕЛАТЬ: Когда шайба на своей половине поля и в руках у протинвика,
            /// то надо стоять перед вратарём и отбивать, когда подлетит
            ///



            if (isGotPuck())
            {
                AimAndStrike();
            }
            else
            {
                HockState = HockStateType.none;
                if (world.Puck.OwnerPlayerId == world.GetOpponentPlayer().Id&& !isOpponentClose()
                    //|| isOpponentOnYourSide()
                    )
                {
                    goToDefPosition();
                }
                else if ((world.Puck.X > world.Width / 2 && amIRight) ||
                         (!amIRight && world.Puck.X < world.Width / 2))
                {
                    gotoPuck();
                }
//				else if (Math.Abs(self.GetAngleTo(world.Puck) -
//					self.GetAngleTo(world.GetMyPlayer().NetFront, game.GoalNetTop + game.GoalNetHeight/2))
//					<= 3*Math.PI/4)
//					{
//						move.Turn = self.GetAngleTo(world.GetMyPlayer().NetFront,
//							game.GoalNetTop + game.GoalNetHeight/2) - Math.PI/2;
//						move.SpeedUp = 0.1D;
//					}
//				         Math.Abs(self.GetAngleTo(world.Puck) -
//				         self.GetAngleTo(world.GetMyPlayer().NetFront, game.GoalNetTop + game.GoalNetHeight/2))
//				         > 5*Math.PI/4)
//					{
//						move.Turn
//					}
                else
                {
                    goToDefPosition();
                }
                //strikePuckIfFlyingClose();
            }
        }
示例#2
0
 private void AimAndStrike()
 {
     if (HockState == HockStateType.none)
     {
         HockState = HockStateType.goingToAim;
     }
     if (self.GetDistanceTo(AimGoalPoint[0], AimGoalPoint[1]) > 100D && HockState == HockStateType.goingToAim)
     {
         turnToAim();
         //if (speedAbs() < 3D)
         move.SpeedUp = 1D;                //*turnToAim();
     }
     else
     {
         HockState = HockStateType.aiming;
         //setSpeed(0);
         strikePuckWeak();
     }
 }
示例#3
0
 private void PlayAttack()
 {
     if (isGotPuck())
     {
         AimAndStrike();
     }
     else
     {
         HockState = HockStateType.none;
         if (world.Puck.OwnerPlayerId == world.GetOpponentPlayer().Id)
         {
             KickOpp();
         }
         else if ((world.Puck.X <= world.Width / 2 && amIRight) || (!amIRight && world.Puck.X >= world.Width / 2))
         {
             gotoPuck();
         }
         else
         {
             move.Turn = self.GetAngleTo(world.Puck);
         }
     }
 }