示例#1
0
        protected override void LoadContent()
        {
            //use base.Content to load your game content here
            //load map0 layers and backbuffer
            base.Maps[0].CollisionLayer      = CollisionLayer.FromFile("Content/layers/map1/collision.lyr");
            base.Maps[0].TacticalLayer       = TileLayer.FromFile(Content, "Content/layers/map1/tactical_map.lyr");
            base.Maps[0].TacticalLayer.Alpha = 1.0f;
            base.Maps[0].Layers.Add(TileLayer.FromFile(Content, "Content/layers/map1/map1.lyr"));
            base.Maps[0].Layers[0].Alpha = 1f;

            //player setup
            AnimatedSprite pas = new AnimatedSprite(base.Content.Load <Texture2D>("sprites/ship_ani"), null);

            pas.AddAnimation(2, 64, 64, 0, 0, 10, "Idle");
            pas.Animations["Idle"].UpdateType = UpdateType.Looped;
            pas.CurrentAnimationName          = "Idle";
            PlayerObject player = new PlayerObject
                                  (
                "Player",
                new Vector2(64, 64),
                pas,
                base.Content.Load <Texture2D>("particles/particle1"),
                base.Content.Load <Texture2D>("particles/particle_base")
                                  );

            player.CurrentMap = CurrentMap;
        }
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter      = "Map File|*.map";
            openFileDialog1.Multiselect = false;

            //tileMap = null;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                layerDict.Clear();
                collDict.Clear();
                textureDict.Clear();
                previewDict.Clear();


                CollLayerListBox.Items.Clear();
                TilelayerListBox.Items.Clear();
                textureListBox.Items.Clear();

                tileMap.tile.Clear();
                tileMap.coll.Clear();

                tileMap.Layers.Clear();
                tileMap.colLayers.Clear();

                Logic();
                Render();

                currentLayer          = null;
                currentCollisionLayer = null;


                string filename = openFileDialog1.FileName;

                string[] textureNames;

                tileMap.OpenTileFile(filename);

                foreach (string tile in tileMap.tile) // Loop through List with foreach
                {
                    TileLayer tileLayer = TileLayer.FromFile(contentPathTextBox.Text + "/" + tile, out textureNames);

                    layerDict.Add(Path.GetFileName(contentPathTextBox.Text + "/" + tile), tileLayer);

                    tileMap.Layers.Add(tileLayer);

                    TilelayerListBox.Items.Add(Path.GetFileName(contentPathTextBox.Text + "/" + tile));

                    foreach (string textureName in textureNames)
                    {
                        if (textureDict.ContainsKey(textureName))
                        {
                            tileLayer.AddTexture(textureDict[textureName]);
                            continue;
                        }

                        string fullPath = contentPathTextBox.Text + "/" + textureName;

                        foreach (string ext in imageExtensions)
                        {
                            if (File.Exists(fullPath + ext))
                            {
                                fullPath += ext;
                                break;
                            }
                        }

                        Texture2D tex;

                        using (Stream stream = File.OpenRead(fullPath))
                        {
                            tex = Texture2D.FromStream(GraphicsDevice, stream);
                        }

                        Image image = Image.FromFile(fullPath);
                        textureDict.Add(textureName, tex);
                        previewDict.Add(textureName, image);

                        textureListBox.Items.Add(textureName);
                        tileLayer.AddTexture(tex);
                    }
                }

                foreach (string coll in tileMap.coll) // Loop through List with foreach
                {
                    CollisionLayer collLayer = CollisionLayer.FromFile(contentPathTextBox.Text + "/" + coll);
                    collDict.Add(Path.GetFileName(contentPathTextBox.Text + "/" + coll), collLayer);

                    tileMap.colLayers.Add(collLayer);
                    CollLayerListBox.Items.Add(Path.GetFileName(contentPathTextBox.Text + "/" + coll));
                }

                AdjustScrollBars();
            }
        }