Exemplo n.º 1
0
        private static Vector2D GetVectorOfDirection(WalkerField.Direction direction)
        {
            CoordinateSystem2D coordSys = Game.GetLocalCoordsystemOfPlayer();
            Vector2D           vector   = new Vector2D(0, 0);

            switch (direction)
            {
            case WalkerField.Direction.FORWARD: vector = new Vector2D(1, 0); break;

            case WalkerField.Direction.BACKWARD: vector = new Vector2D(-1, 0); break;

            case WalkerField.Direction.RIGHT: vector = new Vector2D(0, -1); break;

            case WalkerField.Direction.LEFT: vector = new Vector2D(0, 1); break;

            case WalkerField.Direction.FORWARDLEFT: vector = new Vector2D(1, 1); break;

            case WalkerField.Direction.FORWARDRIGHT: vector = new Vector2D(1, -1); break;

            case WalkerField.Direction.BACKWARDLEFT: vector = new Vector2D(-1, -1); break;

            case WalkerField.Direction.BACKWARDRIGHT: vector = new Vector2D(-1, 1); break;
            }

            return(coordSys.LocalToGlobal(vector.UnitVector));
        }
Exemplo n.º 2
0
 public WalkerField.Distance GetDistanceInDirection(WalkerField.Direction direction)
 {
     return(Fields.Find(x => x.direction == direction).distance);
 }
Exemplo n.º 3
0
 private static WalkerField.Distance GetDistanceStateInDirection(Point2D position, WalkerField.Direction direction, float nearDistance, float farDistance)
 {
     return(GetDistanceState(Game.GetWallDistance(GetVectorOfDirection(direction), position, farDistance), nearDistance, farDistance));
 }
Exemplo n.º 4
0
 public WalkerAction(WalkerField.Direction direction)
 {
     this.direction = direction;
 }