Пример #1
0
        private void InitializeMaze(IAxisFactory axisFactory, IMazeViewDataFactory mazeViewDataFactory)
        {
            IMazeNodeData nodeData = _mazeNodeDataBuilder.GenerateNodeData(12345);
            IMazeViewData viewData = _mazeNodeDataBuilder.GenerateViewData(nodeData, axisFactory, mazeViewDataFactory);

            _maze.Initialize(nodeData, viewData);
        }
Пример #2
0
        public Form1(
            IAxisFactory axisFactory,
            IMazeViewDataFactory mazeViewDataFactory,
            MazeNodeDataBuilder mazeNodeDataBuilder,
            IVisualizer visualizer,
            UnitMover unitMover,
            Maze maze,
            Keybindings keybindings)
        {
            _maze                = maze;
            _unitMover           = unitMover;
            _visualizer          = visualizer;
            _mazeNodeDataBuilder = mazeNodeDataBuilder;
            _keybindings         = keybindings;

            InitializeComponent();
            InitializeMaze(axisFactory, mazeViewDataFactory);
            InitializeKeybindings(axisFactory);

            DoubleBuffered = true;

            fAnimator = new Timer()
            {
                Interval = 500,
            };
            fAnimator.Tick += FAnimator_Tick1;
            fAnimator.Start();
        }
Пример #3
0
 public RotateCommand(IRotation rotation, IUnit player, IMazeViewData mazeView, IMazeNodeData nodeData, IAxisFactory factory)
 {
     fRotation        = rotation;
     fPlayer          = player;
     fMazeView        = mazeView;
     fNodesByLocation = nodeData.NodesByLocation;
     fAxisFactory     = factory;
 }
 static AxisCore()
 {
     Factory = DependencyService.Get <IAxisFactory>();
     if (Factory == null)
     {
         throw new InvalidOperationException(
                   "Cannot get Dependency IAxisFactory. Have you registered the dependency via attribute [assembly: Xamarin.Forms.Dependency(typeof(AxisFactory))] in your application?");
     }
 }
Пример #5
0
        public MazeViewData(int start, int end, int size, IMazeNodeData nodeData, IAxisFactory axisFactory)
        {
            ViewSize  = size;
            ViewEnd   = end;
            ViewStart = start;

            UpDownRotationAxis    = axisFactory.CreateXAxis();
            LeftRightRotationAxis = axisFactory.CreateYAxis();
            MazeNodes             = CreateInitialView(nodeData, 0);

            InitializeMovementCube();
        }
Пример #6
0
        private void InitializeKeybindings(IAxisFactory axisFactory)
        {
            _keybindings.Add(Keys.Up, new RotateCommand(new UpRotation(), _maze.Hero, _maze.ViewData, _maze.NodeData, axisFactory));
            _keybindings.Add(Keys.Down, new RotateCommand(new DownRotation(), _maze.Hero, _maze.ViewData, _maze.NodeData, axisFactory));
            _keybindings.Add(Keys.Left, new RotateCommand(new LeftRotation(), _maze.Hero, _maze.ViewData, _maze.NodeData, axisFactory));
            _keybindings.Add(Keys.Right, new RotateCommand(new RightRotation(), _maze.Hero, _maze.ViewData, _maze.NodeData, axisFactory));

            _keybindings.Add(Keys.W, new MoveCommand(new UpDirection(), _maze.Hero));
            _keybindings.Add(Keys.S, new MoveCommand(new DownDirection(), _maze.Hero));
            _keybindings.Add(Keys.A, new MoveCommand(new LeftDirection(), _maze.Hero));
            _keybindings.Add(Keys.D, new MoveCommand(new RightDirection(), _maze.Hero));
        }
Пример #7
0
 public AxisProvider(IAxisFactory factory)
 {
     this.factory = factory;
 }
Пример #8
0
 public IMazeViewData CreateMazeViewData(int start, int end, int size, IMazeNodeData nodeData, IAxisFactory axisFactory)
 {
     return(new MazeViewData(start, end, size, nodeData, axisFactory));
 }
Пример #9
0
 public MazeViewRotator(IAxisFactory factory)
 {
     fAxisFactory = factory;
 }
Пример #10
0
 public IMazeViewData GenerateViewData(IMazeNodeData nodeData, IAxisFactory axisFactory, IMazeViewDataFactory mazeViewDataFactory)
 {
     return(mazeViewDataFactory.CreateMazeViewData(fGridStart, fGridEnd, fGridSize, nodeData, axisFactory));
 }