コード例 #1
0
        protected override void LoadContent()
        {
            //Nacteni pisma
            spriteFont = Content.Load<SpriteFont>(@"Fonts\startFont");

            //Vytvoreni menu
            menu = new MenuComponent(spriteFont, menuItems, true);

            //Nastaveni pozice
            Vector2 menuPosition = new Vector2(
            (Game.Window.ClientBounds.Width - menu.Width) / 2,
            (Game.Window.ClientBounds.Height - menu.Height) / 2);
            menu.SetPostion(menuPosition);

            //Vytvoreni pozadi
            background = new BackgroundComponent(GameRef, Content.Load<Texture2D>(@"Backgrounds\startscreen"), DrawMode.Center);

            base.LoadContent();
        }
コード例 #2
0
        protected override void LoadContent()
        {
            ram = new Rectangle(770, 250, 220, 220);

            //Nacteni fontu, ramecku pro tileset a pozadi
            font = Content.Load<SpriteFont>(@"Fonts\editorFont");
            ramTexture = Content.Load<Texture2D>(@"Pictures\ram");
            background = new BackgroundComponent(GameRef, Content.Load<Texture2D>(@"Backgrounds\editorscreen"), DrawMode.Center);

            #region ovladaci prvky

            spriteFont = Content.Load<SpriteFont>(@"Fonts\menuFont");
            string[] LayermenuItems = { "Back Map", "Back Splatter", "Front Map", "Front Splatter" };
            LayerMenu = new MenuComponent(font, LayermenuItems, false);
            LayerMenu.SetPostion(new Vector2(770, 30));
            LayerMenu.SelectedColor = Color.Yellow;
            LayerMenu.HiliteColor = Color.White;

            spriteFont = Content.Load<SpriteFont>(@"Fonts\menuFont");
            string[] ActionmenuItems = { "Add", "Move", "Pick", "Delete" };
            ActionMenu = new MenuComponent(font, ActionmenuItems, false);
            ActionMenu.SetPostion(new Vector2(900, 30));
            ActionMenu.SelectedColor = Color.Yellow;
            ActionMenu.HiliteColor = Color.White;

            spriteFont = Content.Load<SpriteFont>(@"Fonts\menuFont");

            LinkLabel linkLabel1 = new LinkLabel(spriteFont);
            linkLabel1.Text = "Save";
            linkLabel1.Size = linkLabel1.SpriteFont.MeasureString(linkLabel1.Text);
            linkLabel1.Position = new Vector2(770,720);
            linkLabel1.Selected += new EventHandler(linkLabel1_Selected);
            Controls.Add(linkLabel1);

            LinkLabel linkLabel2 = new LinkLabel(spriteFont);
            linkLabel2.Text = "Load";
            linkLabel2.Size = linkLabel2.SpriteFont.MeasureString(linkLabel2.Text);
            linkLabel2.Position = new Vector2(940,720);
            linkLabel2.Selected += new EventHandler(linkLabel2_Selected);
            Controls.Add(linkLabel2);
            Controls.editor = true;

            label1 = new Label(spriteFont);
            label1.Position = new Vector2(845, 720);
            label1.Visible = false;
            Controls.Add(label1);

            Session.LoadMapAndTextures("map.xml");

            string[] CharacterStrings = new string[Session.baseUnits.Keys.Count];
            Session.baseUnits.Keys.CopyTo(CharacterStrings, 0);

            CharacterMenu = new MenuComponent(font, CharacterStrings, false);
            CharacterMenu.SetPostion(new Vector2(770, 200));
            CharacterMenu.SelectedColor = Color.Yellow;
            CharacterMenu.HiliteColor = Color.White;

            int[] KeyInts = new int[Session.baseKeys.Keys.Count];
            Session.baseKeys.Keys.CopyTo(KeyInts, 0);
            string[] KeyStrings = new string[Session.baseKeys.Keys.Count];
            for (int i = 0; i < KeyInts.Length; i++)
            {
                KeyStrings[i] = KeyInts[i].ToString();
            }

            KeyMenu = new MenuComponent(font, KeyStrings, false);
            KeyMenu.SetPostion(new Vector2(770, 200));
            KeyMenu.SelectedColor = Color.Yellow;
            KeyMenu.HiliteColor = Color.White;

            string[] TileSetmenuItems = new string[Session.FrontMap.tilesets.Count + 2];
            for (int i = 0; i < Session.FrontMap.tilesets.Count; i++)
            {
                TileSetmenuItems[i] = Session.FrontMap.tilesets[i].Texture.Name;  //files[i].Name.Substring(0, files[i].Name.Length - 4);
            }
            TileSetmenuItems[TileSetmenuItems.Length - 2] = "Characters";
            TileSetmenuItems[TileSetmenuItems.Length - 1] = "Keys";

            TileSetMenu = new MenuComponent(font, TileSetmenuItems, false);
            TileSetMenu.SetPostion(new Vector2(770, 100));
            TileSetMenu.SelectedColor = Color.Yellow;
            TileSetMenu.HiliteColor = Color.White;

            #endregion

            //Nastaveni prvniho itemu u LayerMenu
            switch (LayerMenu.clickedIndex)
            {
                case 0:
                    CurrentMap = Session.BackMap;
                    CurrentLayer = Session.BackMap.mapLayers[0];
                    break;
                case 1:
                    CurrentMap = Session.BackMap;
                    CurrentLayer = Session.BackMap.mapLayers[1];
                    break;
                case 2:
                    CurrentMap = Session.FrontMap;
                    CurrentLayer = Session.FrontMap.mapLayers[0];
                    break;
                case 3:
                    CurrentMap = Session.FrontMap;
                    CurrentLayer = Session.FrontMap.mapLayers[1];
                    break;
            }

            //Nastaveni bazoveho policka pro akce
            CurrentTile = new Tile(0, 0, -1, -1);
            CurrentTileSet = Session.FrontMap.tilesets[CurrentTile.Tileset];

            //Nacteni vstupnich ramecku pro obraz TileSetu
            int tiles = CurrentTileSet.TilesWide * CurrentTileSet.TilesHigh;
            sourceRectangles = new Rectangle[tiles];
            float Scale = (float)ram.Width / (float)Session.FrontMap.tilesets[CurrentTile.Tileset].Texture.Width;
            int tile = 0;
            for (int y = 0; y < CurrentTileSet.TilesHigh; y++)
                for (int x = 0; x < CurrentTileSet.TilesWide; x++)
                {
                    sourceRectangles[tile] = new Rectangle(
                    (int)(x * CurrentTileSet.TileWidth * Scale),
                    (int)(y * CurrentTileSet.TileWidth * Scale),
                    (int)(CurrentTileSet.TileWidth * Scale),
                    (int)(CurrentTileSet.TileHeight * Scale));
                    tile++;
                }

            base.LoadContent();
        }