コード例 #1
0
ファイル: Sprite.cs プロジェクト: BlaisePascalSi/PokeSi
 public Sprite(XmlDocument doc, XmlElement parent, Resources res)
 {
     Resources = res;
     Sheet = res.SpriteSheets[(string)XmlHelper.GetSimpleNodeContent<string>("Sheet", parent, "")];
     SourceRect = XmlHelper.GetRectangle("SourceRect", parent);
     Origin = XmlHelper.GetPoint("Origin", parent);
 }
コード例 #2
0
ファイル: Animation.cs プロジェクト: BlaisePascalSi/PokeSi
        public Animation(XmlDocument doc, XmlElement parent, Resources res)
        {
            Resources = res;
            //SpriteSheet = Resources.GetSpriteSheet((string)XmlHelper.GetSimpleNodeContent<string>("Sheet", parent, ""));
            FrameTime = (float)XmlHelper.GetSimpleNodeContent<float>("FrameTime", parent, 1);

            XmlElement spritesElem = XmlHelper.GetElement("Sprites", parent);
            if (spritesElem != null)
            {
                Sprites = new Sprite[spritesElem.ChildNodes.Count];
                for (int i = 0; i < Sprites.Length; i++)
                    Sprites[i] = Resources.GetSprite((string)XmlHelper.GetSimpleNodeContent<string>("S" + i, parent, ""));
            }
            else
            {
                Sprites = new Sprite[1];
                Sprites[0] = Resources.GetSprite("");
            }

            IsLooping = (bool)XmlHelper.GetSimpleNodeContent<bool>("IsLooping", parent, true);
            SpriteEffect = (SpriteEffects)Enum.Parse(typeof(SpriteEffects), (string)XmlHelper.GetSimpleNodeContent<string>("Effect", parent, "None"));

            if (FrameTime == 0)
                FrameTime = 1;
        }
コード例 #3
0
ファイル: Sprite.cs プロジェクト: BlaisePascalSi/PokeSi
 public Sprite(SpriteSheet sheet, Rectangle sourceRect, Point origin, Resources res)
 {
     Resources = res;
     Sheet = sheet;
     SourceRect = sourceRect;
     Origin = origin;
 }
コード例 #4
0
ファイル: Sprite.cs プロジェクト: BlaisePascalSi/PokeSi
 public Sprite(SpriteSheet sheet, Rectangle sourceRect, Resources res)
 {
     Resources = res;
     Sheet = sheet;
     SourceRect = sourceRect;
     Origin = Point.Zero;
 }
コード例 #5
0
        public AddTileScreen(ScreenManager manager, Resources resources)
            : base(manager)
        {
            OpeningTransition = new NoneTransition(Transition.Types.Opening);
            ClosingTransition = new NoneTransition(Transition.Types.Closing);

            IsSubmitted = false;
            Resources = resources;
        }
コード例 #6
0
ファイル: Animation.cs プロジェクト: BlaisePascalSi/PokeSi
 public Animation(Resources res, string[] spritesKey, float frameTime, bool isLooping = true)
 {
     Resources = res;
     FrameTime = frameTime;
     IsLooping = isLooping;
     SetSprites(spritesKey);
     if (FrameTime == 0)
         FrameTime = 1;
 }
コード例 #7
0
        public AddAnimationScreen(ScreenManager manager, Resources resources)
            : base(manager)
        {
            OpeningTransition = new NoneTransition(Transition.Types.Opening);
            ClosingTransition = new NoneTransition(Transition.Types.Closing);

            IsSubmitted = false;
            Resources = resources;
            animCurrentlyBuilding = new Animation(Resources, new string[] { }, 1, true);
            animPlayer = new AnimationPlayer();
        }
コード例 #8
0
ファイル: World.cs プロジェクト: BlaisePascalSi/PokeSi
        private void Load(XmlDocument doc, XmlElement parent)
        {
            string path = (string)XmlHelper.GetSimpleNodeContent<string>("Resources", parent, "resources.xml");
            Resources = new Resources(this, path);

            Tile.StaticLoad(doc, parent, this);

            if (XmlHelper.HasChild("Tiles", parent))
            {
                XmlElement tilesElem = XmlHelper.GetElement("Tiles", parent);
                foreach (XmlElement tileElem in tilesElem.ChildNodes)
                {
                    string nodeName = tileElem.Name;
                    string[] tab = nodeName.Split('_');
                    if (tab[0] == "Loc")
                    {
                        int x = int.Parse(tab[1]);
                        int y = int.Parse(tab[2]);
                        if (x < 0 || x >= Width)
                            continue;
                        if (y < 0 || y >= Height)
                            continue;
                        Type type = this.GetType().Assembly.GetType(typeof(Tile).Namespace + "." + (string)XmlHelper.GetSimpleNodeContent<string>("Type", tileElem, ""));
                        if (type == null)
                            continue;
                        LocatedTile locTile = (LocatedTile)type.GetConstructor(new Type[] { typeof(World), typeof(int), typeof(int) }).Invoke(new object[] { this, x, y });
                        locTile.Load(doc, tileElem, this);
                        SetTile(x, y, locTile);
                    }
                    else if (tab[0] == "UnLoc")
                    {
                        string tileId = tileElem.FirstChild.Value;
                        int x = int.Parse(tab[1]);
                        int y = int.Parse(tab[2]);
                        if (x < 0 || x >= Width)
                            continue;
                        if (y < 0 || y >= Height)
                            continue;
                        SetTile(x, y, Tile.UnLocatedTile[tileId]);
                    }
                }
            }

            if (XmlHelper.HasChild("Entities", parent))
            {
                Entities = new Dictionary<int, Entity>();
                XmlElement entitiesElem = XmlHelper.GetElement("Entities", parent);
                foreach (XmlElement entityElem in entitiesElem.ChildNodes)
                {
                    Entity entity = Entity.Unserialize(doc, entityElem, this);
                    int id;
                    bool good = int.TryParse(entityElem.Name.TrimStart('E'), out id);
                    if (entity != null && good)
                        Entities.Add(id, entity);
                }
            }
        }