コード例 #1
0
ファイル: Layer.cs プロジェクト: RufusDerrid/test
        public void LoadContent(Vector2 tileDimensions)
        {
            Image.LoadContent();

            Vector2 position = -tileDimensions;

            foreach (string row in Map.Row)
            {
                string[] split = row.Split(']');
                position.X = -tileDimensions.X;
                position.Y += tileDimensions.Y;
                foreach (string s in split)
                {
                    if (s != String.Empty)
                    {
                        position.X += tileDimensions.X;
                        if (!s.Contains("---"))
                        {
                            _state = "Passive";

                            Tile tile = new Tile();

                            string str = s.Replace("[", String.Empty);
                            int value1 = int.Parse(str.Substring(0, str.IndexOf(':')));
                            int value2 = int.Parse(str.Substring(str.IndexOf(':') + 1));

                            if (SolidTiles.Contains(s))
                            {
                                _state = "Solid";
                            }

                            int chanse = 0;
                            if (s.Contains("1:"))
                                chanse = 10;

                            tile.LoadContent(position, new Rectangle(
                                value1 * (int)tileDimensions.X, value2 * (int)tileDimensions.Y,
                                (int)tileDimensions.X, (int)tileDimensions.Y), _state, OnDestroy, chanse);

                            if (OverlayTiles.Contains(s))
                                _overlayTiles.Add(tile);
                            else
                                _underlayTiles.Add(tile);
                        }
                    }
                }
            }
        }
コード例 #2
0
ファイル: Layer.cs プロジェクト: RufusDerrid/test
 private void OnDestroy(Tile tile)
 {
     tile.UnloadContent();
     _underlayTiles.Remove(tile);
     _overlayTiles.Remove(tile);
 }