Inheritance: MonoBehaviour
Example #1
0
 /// <summary>
 /// Инициализация полей для начала игры
 /// </summary>
 public void InitPlayer()
 {
     vec = VectorMove.NoDirection;
     mv  = MapValue.Player;
     st  = Status.Player;
     cc  = ConsoleColor.Green;
 }
Example #2
0
        public static VectorMove Move(ConsoleKey ck)
        {
            VectorMove vm = VectorMove.NoDirection;

            switch (ck)
            {
            case ConsoleKey.W:
                vm = VectorMove.Up;
                break;

            case ConsoleKey.S:
                vm = VectorMove.Down;
                break;

            case ConsoleKey.A:
                vm = VectorMove.Left;
                break;

            case ConsoleKey.D:
                vm = VectorMove.Right;
                break;

            default:
                break;
            }
            return(vm);
        }
Example #3
0
 /// <summary>
 /// Установка вектора движения  в области прямой видимости до преграды
 /// </summary>
 /// <param name="sizeVm">Количество ходов к игроку</param>
 /// <param name="vmValue">Направление движения </param>
 /// <returns></returns>
 private static VectorMove[] SetVectorMove(int sizeVm, VectorMove vmValue)
 {
     VectorMove[] vm = new VectorMove[sizeVm];
     for (int i = 0; i < sizeVm; i++)
     {
         vm[i] = vmValue;
     }
     return(vm);
 }
Example #4
0
        /// <summary>
        /// Создания массива движения за игроком
        /// </summary>
        /// <param name="vm">ссылка на вектор движения</param>
        /// <param name="size">количество ходов</param>
        /// <param name="vector">направление движения</param>
        public static void SetVectorMove(ref VectorMove[] vm, int size, VectorMove vector)
        {
            if (vm == null)
            {
                vm = new VectorMove[size];
            }

            vm[size - 1] = vector;
        }
Example #5
0
        public void OneVectorMoveCorrect()
        {
            var pattern = new VectorMove(new Vector(0, 0), 2, Vector.Right);

            for (var i = 0; i < 3; i++)
            {
                pattern.Move(1);
            }

            Assert.AreEqual(new Vector(3, 0), pattern.Location);
        }
Example #6
0
        public void ThreeVectorMoveCorrect()
        {
            var pattern = new VectorMove(new Vector(0, 0), 2, Vector.Right, Vector.Down, Vector.Left);

            for (var i = 0; i < 7; i++)
            {
                pattern.Move(1);
            }

            Assert.AreEqual(new Vector(1, 2), pattern.Location);
        }
Example #7
0
        public void TwoVectorMoveCorrect()
        {
            var pattern = new VectorMove(new Vector(0, 0), 2, Vector.Right, Vector.Down);

            for (var i = 0; i < 5; i++)
            {
                pattern.Move(1);
            }

            Assert.AreEqual(new Vector(3, 2), pattern.Location);
        }
Example #8
0
        private bool checkCollisions(VectorMove vector, List <Point> fig = null)
        {
            if (fig == null)
            {
                fig = pList;
            }
            if (allPoints != null)
            {
                foreach (Point p in fig)
                {
                    switch (vector)
                    {
                    case VectorMove.Down:
                    {
                        if (CollisionsMatchDown(p.x, p.y, p.sym))
                        {
                            isStop = true;
                            return(true);
                        }
                        break;
                    }

                    case VectorMove.Right:
                    {
                        if (CollisionsMatcRight(p.x, p.y, p.sym))
                        {
                            return(true);
                        }
                        break;
                    }

                    case VectorMove.Left:
                    {
                        if (CollisionsMatcLeft(p.x, p.y, p.sym))
                        {
                            return(true);
                        }
                        break;
                    }

                    case VectorMove.All:
                    {
                        if (CollisionsMatchDown(p.x, p.y, p.sym, 0) || CollisionsMatcLeft(p.x, p.y, p.sym, 0) || CollisionsMatcRight(p.x, p.y, p.sym, 0))
                        {
                            return(true);
                        }

                        break;
                    }
                    }
                }
            }
            return(false);
        }
Example #9
0
        public void AngleVectorMoveCorrect()
        {
            var pattern = new VectorMove(new Vector(0, 0), 2, Vector.Right.Rotate(Math.PI / 3));

            for (var i = 0; i < 2; i++)
            {
                pattern.Move(1);
            }

            Assert.AreEqual(1, pattern.Location.X, 1e-9);
            Assert.AreEqual(2 * Math.Sin(Math.PI / 3), pattern.Location.Y, 1e-9);
        }
Example #10
0
 /// <summary>
 /// Инициализация полямили для старта
 /// </summary>
 public void InitEnemy()
 {
     p              = Prioritet.VectorRandom;
     vec            = VectorMove.NoDirection;
     mv             = MapValue.Enemy;
     st             = Status.Enemy;
     actualMapValue = MapValue.Food;
     actualStatus   = Status.Food;
     cc             = ConsoleColor.Red;
     findVector     = false;
     findSee        = false;
     countStep      = 0;
     Actualcc       = ConsoleColor.Cyan;
 }
Example #11
0
        /// <summary>
        /// Работа по поиску в области прямой видимости до преграды
        /// </summary>
        /// <param name="map">Карта</param>
        /// <param name="vm">Ссылка на вестор движения </param>
        /// <param name="en">Враг который ищет</param>
        /// <returns></returns>
        private static VectorMove[] FindVectorMove(Map map, VectorMove vm, Enemy en)
        {
            int x = 0;
            int y = 0;

            #region FindVectorMove

            switch (vm)
            {
            case VectorMove.Up:
                x = -1;
                break;

            case VectorMove.Down:
                x = 1;
                break;

            case VectorMove.Left:
                y = -1;
                break;

            case VectorMove.Right:
                y = 1;
                break;

            default:
                break;
            }
            #endregion

            int sizeVm = 0;

            int moveposX = x;
            int moveposY = y;

            while (map.map[en.posX + moveposX, en.posY + moveposY].statusTile != Status.Wall)
            {
                ++sizeVm;

                if (map.map[en.posX + x, en.posY + y].statusTile == Status.Player)
                {
                    return(AI.SetVectorMove(sizeVm, vm));
                }
                moveposX += x;
                moveposY += y;
            }

            return(null);
        }
 public static Action createAction(Action.name_of_Action _name)
 {
     switch(_name)
     {
     case Action.name_of_Action.Move:
     {
         Action action = new Move();
         //action.player=
         return action;
     }
     case Action.name_of_Action.Stop:
     {
         Action action= new Stop();
         return action;
     }
     case Action.name_of_Action.VectorMove:
     {
         Action action= new VectorMove();
         return action;
     }
     }
     return null;
     //strategy.update += action;
 }