示例#1
0
        public MainWindow()
        {
            InitializeComponent();
            Lay     = LayoutsFactory.GetLayout(LayoutType.Vertical, this.Content);
            MapInfo = new CellMapInfo(10, 10, 40, 5);
            map     = MapCreator.GetUniversalMap(this, MapInfo);
            Lay.Attach(map, 0);
            Inventory = new InventoryPanel(map.Library, 50, 14);
            Lay.Attach(Inventory, 1);
            map.Library.ImagesFolder = new PathInfo {
                Path = "..\\..\\images", Type = PathType.Relative
            };
            map.Library.AddPicture("wall", "wall.png");
            map.Library.AddPicture("player", "evil.png");
            map.Library.AddPicture("gem", "gem_green.png");

            player.CreatePlayer(map);

            map.Library.AddContainer("gem", "gem");
            map.ContainerSetSize("gem", 40);
            map.ContainerSetCoordinate("gem", 180, 200);


            timer.AddAction(KeyCheck, 50);
        }
示例#2
0
        public MainWindow()
        {
            InitializeComponent();
            // Определяем вид разметки окна: область карты слева и меню справа
            Lay = LayoutsFactory.GetLayout(LayoutType.Vertical, this.Content);

            // Определяем параметры карты: количество клеток по горизонтали и вертикали, размер клетки,
            // ширина декоративной рамки вокруг карты
            MapInfo = new CellMapInfo(35, 20, 50, 0);

            // Создаем карту и размещаем его в окне программы
            Map = MapCreator.GetUniversalMap(this, MapInfo);
            Lay.Attach(Map, 0);
            //Map.DrawGrid(); // выводим сетку

            // Указываем путь к папке с картинками
            Map.Library.ImagesFolder = new PathInfo {
                Path = "..\\..\\..\\..\\i", Type = PathType.Relative
            };
            // Создаем панель инвентаря и размещаем ее в меню

            addPictures();
            Map.Keyboard.SetSingleKeyEventHandler(checkKey);

            Map.Library.AddContainer("player", "player", ContainerType.AutosizedSingleImage);
            Map.ContainerSetMaxSide("player", 100);
            Map.ContainerSetCoordinate("player", 960, 540);
            Platform.Map = Map;
            Platform platform = new Platform();

            platform.SetCoordinate(960, 600);
            Platforms.Add(platform);

            timer.AddAction(gameCycle, 10);
        }
示例#3
0
        public MainWindow()
        {
            #region Подготовка карты и панели меню
            InitializeComponent();
            // Определяем вид разметки окна: область карты слева и меню справа
            Lay = LayoutsFactory.GetLayout(LayoutType.Vertical, this.Content);

            // Определяем параметры карты: количество клеток по горизонтали и вертикали, размер клетки, 
            // ширина декоративной рамки вокруг карты
            MapInfo = new CellMapInfo(35, 20, 50, 0);

            // Создаем карту и размещаем его в окне программы
            Map = MapCreator.GetUniversalMap(this, MapInfo);
            Lay.Attach(Map, 0);
            //Map.DrawGrid(); // выводим сетку

            // Указываем путь к папке с картинками 
            Map.Library.ImagesFolder = new PathInfo { Path = "..\\..\\..\\..\\i", Type = PathType.Relative };
            // Создаем панель инвентаря и размещаем ее в меню
            hppanel = new InventoryPanel(Map.Library, 150);
            //hppanel2 = new InventoryPanel(Map.Library, 150);
            //Items1 = new InventoryPanel(Map.Library, 50);
            //Items2 = new InventoryPanel(Map.Library, 50);
            Lay.Attach(hppanel, 1);
            //Lay.Attach(Items1, 1);
            //Lay.Attach(hppanel2, 1);
            //Lay.Attach(Items2, 1);
            hppanel.SetBackground(Brushes.Wheat);

            // Создаем текстовую панель и размещаем ее в меню
            Info = new TextArea_Vertical();
            Lay.Attach(Info, 1);
            Info.AddTextBlock("expEnemy");
            Info.AddTextBlock("expMine");

            // определяем функцию, которая будет вызвана при нажатии на клавишу
            //Map.Keyboard.SetSingleKeyEventHandler(CheckKey);
            #endregion
            player = new GameObject();
            player.y = 50;
            player.speed = 3;
            player.reload = 100000;
            player.ammo = 40;
            player.hp = 10;
            player.InventoryPanel = hppanel;
            addPictures();
            //player.Name = 
            Map.SetMapBackground("map");
            Name Start = new Name();
            Start.player = player;
            Start.ShowDialog();
            timer.AddAction(BCE, 10);
            timer.AddAction(mishen, 30000);
            timer.AddAction(spaunEnemy, 3000);
            timer.AddAction(sudba, 60000);

            hppanel.AddItem("hp", "hp10");
            hppanel.AddItem("box", "box", player.ammo.ToString());
        }
示例#4
0
        TextArea_Vertical Info; // Место для текстовой информации

        public MainWindow()
        {
            #region Подготовка карты и панели меню
            InitializeComponent();
            // Определяем вид разметки окна: область карты слева и меню справа
            Lay = LayoutsFactory.GetLayout(LayoutType.Vertical, this.Content);

            // Определяем параметры карты: количество клеток по горизонтали и вертикали, размер клетки,
            // ширина декоративной рамки вокруг карты
            MapInfo = new CellMapInfo(10, 10, 50, 5);

            // Создаем карту и размещаем его в окне программы
            Map = MapCreator.GetUniversalMap(this, MapInfo);
            Lay.Attach(Map, 0);
            Map.DrawGrid(); // выводим сетку

            // Указываем путь к папке с картинками
            Map.Library.ImagesFolder = new PathInfo {
                Path = "..\\..\\images", Type = PathType.Relative
            };

            // Создаем панель инвентаря и размещаем ее в меню
            Items = new InventoryPanel(Map.Library, Map.CellSize);
            Lay.Attach(Items, 1);
            Items.SetBackground(Brushes.Wheat);

            // Создаем текстовую панель и размещаем ее в меню
            Info = new TextArea_Vertical();
            Lay.Attach(Info, 1);

            // определяем функцию, которая будет вызвана при нажатии на клавишу
            Map.Keyboard.SetSingleKeyEventHandler(CheckKey);
            #endregion

            //=======================================================================
            //                         Пример кода

            // добавляем картинку с диска в библиотеку - после этого ее можно вывести на карту сколько угодно раз
            Map.Library.AddPicture("smile", "smile1.png");
            // рисуем ее в двух клетках
            Map.DrawInCell("smile", 2, 4);
            Map.DrawInCell("smile", 4, 9);


            //=======================================================================
            // Со следующей строки пишем свой код :)
            //-----------------------------------------------------------------------
        }
示例#5
0
        static private CellMapInfo GetMapParams(string name)
        {
            CellMapInfo cm;

            switch (name)
            {
            case "task1":
                cm = new CellMapInfo(22, 22, 25, 10);
                break;

            default:
                cm = new CellMapInfo(20, 20, 25, 10);
                break;
            }
            return(cm);
        }
        public MainWindow()
        {
            UGameObjectBase.game = game;
            Behavior.game        = game;
            InitializeComponent();
            Lay      = LayoutsFactory.GetLayout(LayoutType.Vertical, this.Content);
            MapInfo  = new CellMapInfo(50, 31, 30, 5);
            game.Map = MapCreator.GetUniversalMap(this, MapInfo);
            game.Map.Mouse.SetMouseSingleLeftClickHandler(game.setMovementGoalByClick);
            Lay.Attach(game.Map, 0);
            //game.Map.DrawGrid();
            unitsPanel = new InventoryPanel(game.Map.Library, game.Map.CellSize);

            Lay.Attach(unitsPanel, 1);
            unitsPanel.SetBackground(Brushes.Wheat);
            game.Map.SetMapBackground(Brushes.Black);

            info = new TextArea_Vertical();
            Lay.Attach(info, 1);
            info.AddTextBlock("Resources");

            AddPictures();
            unitsPanel.AddItem("allyLightTank", "tank1", "Light Tank");
            unitsPanel.SetMouseClickHandler(CheckInventoryClick);
            unitsPanel.AddItem("allyMediumTank", "MediumTank", "Medium Tank");
            unitsPanel.AddItem("scavenger", "scavenger", "scavenger");
            game.timer.AddAction(ShowResources, 1000);

            game.AddBase(game.Map.XAbsolute / 2, game.Map.YAbsolute / 2, "base");
            // game.CreateTank("scavenger", 500, 500);
            // game.AddObject("SimpleFlyer", new GOParams { X = game.Map.XAbsolute, Y = game.Map.YAbsolute });
            //game.CreateTank("enemyLightTank", 1300, 500);

            // game.CreateTank("Baneblade",100, 200);
            game.CreateTank("enemyLightTank", 5, 500);
        }
示例#7
0
        public MainWindow()
        {
            InitializeComponent();
            Lay     = LayoutsFactory.GetLayout(LayoutType.Vertical, this.Content);
            MapInfo = new CellMapInfo(38, 20, 50, 5);
            map     = MapCreator.GetUniversalMap(this, MapInfo);
            Lay.Attach(map, 0);
            Inventory = new InventoryPanel(map.Library, 50, 14);
            Lay.Attach(Inventory, 1);
            Helper.map = map;
            map.Library.ImagesFolder = new PathInfo {
                Path = "..\\..\\images", Type = PathType.Relative
            };
            map.Library.AddPicture("wall", "wall.png");
            map.Library.AddPicture("fire", "Fire0.png");
            map.Library.AddPicture("Gem0", "gem_green.png");
            map.Library.AddPicture("Gem1", "gem_blue.png");
            map.Library.AddPicture("Gem2", "gem_red.png");
            map.Library.AddPicture("stones", "stones.jpg");
            map.Library.AddPicture("ghost0", "GHOST.png");
            map.Library.AddPicture("ghost1", "GHOST1.png");
            map.Library.AddPicture("ghost2", "GHOST2.png");
            map.Library.AddPicture("gate closed", "gate_closed.png");
            map.Library.AddPicture("chest", "Chest.png");
            for (int I = 0; I <= 3; I++)
            {
                for (int j = 0; j <= 3; j++)
                {
                    map.Library.AddPicture("Portal" + I.ToString() + j.ToString(), "Portal" + I.ToString() + j.ToString() + ".png");
                }
            }
            string[] exp     = new string[11];
            string[] Fire    = new string[10];
            string[] Portal0 = new string[4];
            string[] Portal1 = new string[4];
            string[] Portal2 = new string[4];
            string[] Portal3 = new string[4];
            for (int i = 0; i <= 10; i++)
            {
                exp[i] = "exp" + i.ToString();
                map.Library.AddPicture(exp[i], exp[i] + ".png");
            }
            for (int i = 0; i <= 9; i++)
            {
                Fire[i] = "Fire" + i.ToString();
                map.Library.AddPicture(Fire[i], Fire[i] + ".png");
            }
            for (int i = 0; i <= 3; i++)
            {
                Portal0[i] = "Portal0" + i.ToString();
                Portal1[i] = "Portal1" + i.ToString();
                Portal2[i] = "Portal2" + i.ToString();
                Portal3[i] = "Portal3" + i.ToString();
            }

            map.Library.AddPicture("fon", "Fon.jpg");
            map.SetMapBackground("stones");
            Inventory.AddItem("Lives", "Fire0");
            Inventory.SetBackground(Brushes.Transparent);
            AnimationDefinition a = new AnimationDefinition();

            a.AddEqualFrames(50, exp);
            a.LastFrame = "exp10";
            map.Library.AddAnimation("Explosion", a);
            AnimationDefinition b = new AnimationDefinition();

            b.AddEqualFrames(80, Fire);
            b.LastFrame = "Fire9";
            map.Library.AddAnimation("Fire", b);
            AnimationDefinition c = new AnimationDefinition();

            c.AddEqualFrames(80, Portal0);
            c.LastFrame = "Portal03";
            map.Library.AddAnimation("Portal0", c);
            AnimationDefinition d = new AnimationDefinition();

            d.AddEqualFrames(80, Portal1);
            d.LastFrame = "Portal13";
            map.Library.AddAnimation("Portal1", d);
            AnimationDefinition f = new AnimationDefinition();

            f.AddEqualFrames(80, Portal2);
            f.LastFrame = "Portal23";
            map.Library.AddAnimation("Portal2", f);
            AnimationDefinition e = new AnimationDefinition();

            e.AddEqualFrames(80, Portal3);
            e.LastFrame = "Portal33";
            map.Library.AddAnimation("Portal3", e);
            Helper.PlayerRun = Helper.PlayerWalk * 2;
            //map.Library.AddContainer("wall", "wall");
            //map.ContainerSetSize("wall", 50, 50);
            //map.ContainerSetCoordinate("wall", WallX, WallY);
            CreateGems();
            CreatePlayer();
            CreateWalls(20, 500, 50, 1020);
            CreateWalls(975, 20, 1860, 50);
            CreateWalls(1880, 530, 50, 975);
            CreateWalls(950, 978, 1815, 50);
            CreateWalls(500, 500, 250, 250);
            for (int i = 0; i < 3; i++)
            {
                CreateEnemy();
            }
            CreateContainers("Chest", 101, "chest");
            map.ContainerSetCoordinate("Chest", 1000, 700);
            CreatePortals(0, 100, 200);
            CreatePortals(1, 800, 900);
            CreatePortals(2, 1000, 500);
            CreatePortals(3, 1800, 300);
            //map.Library.AddContainer("fon", "wall", ContainerType.TiledImage);
            //map.ContainerSetSize("fon", 50, 500);
            //map.ContainerSetTileSize("fon", 50, 50);
            //map.ContainerSetCoordinate("fon",25, 25);
            Player.SetCoordinates(80, 80);
            timer.AddAction(CheckKey, 10);
            timer.AddAction(MoveEnemies, 10);
            timer.AddAction(PlayerPlusEnemy, 10);
            //Done:Доделать движение: устранить эффект перепрыгивания стены, вернув координаты в исходное состояние; добавить 2 кнопки.
            //Dont know how:Сделать функцию, которая принимает все параметры контейнера и создает его, чтобы в основной программе можно было создать контейнер в одну строчку.
            //Done:Сделать так, чтобы после сбора кристалла он появлялся в случайном месте, но не ближе 100 пикселей к игроку.
            //Создать класс для кристала.
            //* Продумать механику игры.
        }