private void ContinueFrom(RoadField field) { this.field = field.GetNext(); decorated.Subject.SetPosition(new Position(this.field.X, this.field.Y)); decorated.SetDirection(field.GetNext().Direction); path = 0; switch (this.field.Direction) { case Direction8.North: decorated.SetVelocity(0, -speed); pathAcc = CM.GetXStep(); break; case Direction8.South: decorated.SetVelocity(0, speed); pathAcc = CM.GetXStep(); break; case Direction8.East: decorated.SetVelocity(speed, 0); pathAcc = CM.GetXStep(); break; case Direction8.West: decorated.SetVelocity(-speed, 0); pathAcc = CM.GetXStep(); break; } }
public void GoRound(Ring ring) { RoadField start = ring.GetStartField(); field = start; decorated.Subject.SetPosition(new Position(field.X, field.Y)); //decorated.Subject.SetDirection(field.Direction); path = 0; switch (field.Direction) { case Direction8.North: decorated.SetVelocity(0, -speed); pathAcc = CM.GetXStep(); break; case Direction8.South: decorated.SetVelocity(0, speed); pathAcc = CM.GetXStep(); break; case Direction8.East: decorated.SetVelocity(speed, 0); pathAcc = CM.GetXStep(); break; case Direction8.West: decorated.SetVelocity(-speed, 0); pathAcc = CM.GetXStep(); break; } decorated.SetDirection(field.GetNext().Direction); }