public void Initialize() { _dt = 1; t_ = 0; var currentStrike = gameObjects["currentStrikeInfo"] as StrikeInfo; if (currentStrike == null) throw new NullReferenceException("currentStrikeInfo"); _strikeModel = currentStrike.Model; _strike = gameObjects["strike"] as Strike; if (_strike == null) throw new NullReferenceException("strike"); _t2 = Convert.ToInt32((_strike.StrikeTimeSpan.TotalSeconds + _strikeModel.Delay) * 1000); _ball = gameObjects["ball"] as Ball; _ballStartPosition = new Vector2(_ball.Position.X, _ball.Position.Y); _hole = gameObjects["hole"] as Hole; var currentUser = gameObjects["currentUser"] as User; if (currentUser == null) throw new NullReferenceException("currentUser"); }
public void EvaluteShift3() { var strikeModel = new StrikeModel { Velocity = 1, Delay = 1 }; var kick = new LinearWithTimeDelayBallKickPhysics(strikeModel); var shift = kick.EvaluteShift(1); Assert.AreEqual(2, shift.X); Assert.AreEqual(0, shift.Y); }
public void KickBall() { var generatorMock = new Moq.Mock<IRandom>(); var strikeModel = new StrikeModel { Delay = 0.1, Velocity = 1 }; generatorMock.Setup(t => t.Sample()).Returns(0.4); var ballPositionX = 0.0d; var holePositionX = 1.0d; var competitor = new Competitor(ballPositionX, holePositionX, generatorMock.Object, new LinearWithTimeDelayBallKickPhysics(strikeModel)); var kick = competitor.KickBall(); Assert.AreEqual(1.4, kick.BallShift.X); Assert.AreEqual(1.3, Math.Round(kick.ElapsedTime, 3)); }
public void EvaluteTimeDelay6() { var strikeModel = new StrikeModel { Velocity = 0, Delay = 0 }; var kick = new LinearWithTimeDelayBallKickPhysics(strikeModel); var time = kick.EvaluteElapsedTime(new Vector2(1, 0)); Assert.IsTrue(double.IsInfinity(time)); }
public void EvaluteTimeDelay5() { var strikeModel = new StrikeModel { Velocity = 2, Delay = 1 }; var kick = new LinearWithTimeDelayBallKickPhysics(strikeModel); var time = kick.EvaluteElapsedTime(new Vector2(10, 0)); Assert.AreEqual(4, time); }
public LinearWithTimeDelayBallKickPhysics(StrikeModel strikeModel) { _strikeModel = strikeModel; }