コード例 #1
0
ファイル: MapGenerator.cs プロジェクト: rio900/voins
        private static void CreateStoun(Map map, int mod, List <int> unitIndex1)
        {
            foreach (var item in unitIndex1)
            {
                Unit unit = new Unit()
                {
                    PositionX = map.Calls[item].IndexLeft,
                    PositionY = map.Calls[item].IndexTop
                };

                UC_Block uc_Block = new UC_Block()
                {
                    Width  = 50,
                    Height = 50
                };
                Canvas.SetLeft(uc_Block, map.Calls[item].IndexLeft * 50);
                Canvas.SetTop(uc_Block, map.Calls[item].IndexTop * 50);

                ///Непроходимый блок
                Game_Object_In_Call block = new Game_Object_In_Call()
                {
                    EnumCallType = EnumCallType.Block,
                    View         = uc_Block
                };
                unit.GameObject = block;

                map.Calls[item].Block = true;
                ///В этой ячейке находится непроходимый блок
                map.Calls[item].IUnits.Add(unit);
                ///И его же добавим в масив всех объектов
                map.GameObjectInCall.Add(block);
                ///Отображение
                map.MapCanvas.Children.Add(block.View);
            }
        }
コード例 #2
0
ファイル: Map.cs プロジェクト: rio900/voins
        public void CreateRandomMap(bool noBlock)
        {
            Calls = new List <Map_Cell>();
            MapCanvas.Children.Clear();
            _players          = new List <Player>();
            _deadPlayers      = new List <Player>();
            _killsDeath       = new List <Point>();
            _gameObjectInCall = new List <Game_Object_In_Call>();

            for (int i = 0; i < Width / 50; i++)
            {
                for (int j = 0; j < Height / 50; j++)
                {
                    Map_Cell map_Call = new Map_Cell()
                    {
                        IndexLeft = i,
                        IndexTop  = j
                    };

                    ///Это для размещения блока стены(не пробиваймые блоки)
                    if (i % 2 != 0 && j % 2 != 0)
                    {
                        if (!noBlock)
                        {
                            Unit unit = new Unit()
                            {
                                PositionX = i,
                                PositionY = j
                            };

                            UC_Block uc_Block = new UC_Block()
                            {
                                Width  = 50,
                                Height = 50
                            };
                            Canvas.SetLeft(uc_Block, i * 50);
                            Canvas.SetTop(uc_Block, j * 50);

                            ///Непроходимый блок
                            Game_Object_In_Call block = new Game_Object_In_Call()
                            {
                                EnumCallType = EnumCallType.Block,
                                View         = uc_Block
                            };
                            unit.GameObject = block;

                            map_Call.Block = true;
                            ///В этой ячейке находится непроходимый блок
                            map_Call.IUnits.Add(unit);
                            ///И его же добавим в масив всех объектов
                            GameObjectInCall.Add(block);
                            ///Отображение
                            MapCanvas.Children.Add(block.View);
                        }
                    }
                    Calls.Add(map_Call);
                }
            }
        }