コード例 #1
0
ファイル: HappinessGameScene.cs プロジェクト: shangshen/cozy
        private void RegisterTiles()
        {
            var arr  = new List <Tuple <uint, CozyTiledNode> >();
            var data = CozyDirector.Instance.JsonManagerInstance.ParseWithFile(@".\Content\tiles.json");

            if (data.tiles != null)
            {
                var tiles = data.tiles;
                foreach (var tile in tiles)
                {
                    var texture = CozyDirector.Instance.TextureCacheInstance.AddImage(tile.path);
                    if (tile.type.Equals("tiles"))
                    {
                        // TODO 分割图片
                        var CurrId = tile.id;
                        for (int i = 0; i < tile.w; ++i)
                        {
                            for (int j = 0; j < tile.h; ++j)
                            {
                                var subTile = CozySpriteTiled.Create(texture, new Rectangle(32 * i, 32 * j, 32, 32));
                                CozyTiledFactory.RegisterTiled(CurrId++, subTile);
                            }
                        }
                    }
                    else if (tile.type.Equals("tile"))
                    {
                        // TODO 取图片里的一块
                        var subTile = CozySpriteTiled.Create(texture, new Rectangle(32 * tile.x, 32 * tile.y, 32, 32));
                        CozyTiledFactory.RegisterTiled(tile.id, subTile);
                    }
                }
            }
        }
コード例 #2
0
 private void ShowAllTiles()
 {
     foreach (var obj in CozyTiledFactory.GetTiles())
     {
         ContentControl control = null;
         if (obj.Value is CozyColorTile)
         {
             var ColorTile = obj.Value as CozyColorTile;
             var color     = ColorTile.ColorProperty;
             control = new SampleButton(0, 0)
             {
                 PreferredHeight = 32,
                 PreferredWidth  = 32,
                 Background      = new Starbound.UI.SBColor(color.R, color.G, color.B),
                 Foreground      = new Starbound.UI.SBColor(color.R, color.G, color.B),
             };
         }
         else if (obj.Value is CozySpriteTiled)
         {
             var SpriteTile = obj.Value as CozySpriteTiled;
             control = new TileButton(SpriteTile.Texture, SpriteTile.Rect);
         }
         if (control != null)
         {
             tilesPanel.AddChild(control, () => { CurrentTiledId = obj.Key; });
         }
     }
 }
コード例 #3
0
ファイル: TilesPluginMgr.cs プロジェクト: shangshen/cozy
        public static void RegistAllTiles()
        {
            mPluginList.Add(new TilesPluginColorTiles());
            mPluginList.Add(new TilesPluginSpriteTiles());

            foreach (var i in mPluginList)
            {
                var tiles = i.GetTiles();
                foreach (var t in tiles)
                {
                    CozyTiledFactory.RegisterTiled(t.Item1, t.Item2);
                }
            }
        }
コード例 #4
0
        protected override void DrawSelf(Microsoft.Xna.Framework.GameTime gameTime, Microsoft.Xna.Framework.Graphics.SpriteBatch spriteBatch)
        {
            spriteBatch.End();

            foreach (var obj in DrawableUIElemts)
            {
                foreach (Control elemt in obj.GetDrawableElemt())
                {
                    renderer.Render(elemt, spriteBatch);
                }
            }

            spriteBatch.Begin();

            if (Status == S_Add)
            {
                CozyTiledFactory.GetInstance(CurrentTiledId).DrawAt(gameTime, spriteBatch, CurrentPosition.ToVector2(), NodeContentSize);
            }
            foreach (var obj in TempTiles)
            {
                var ActualPosition = CozyTiledPositionHelper.ConvertTiledPositionToPosition(obj.Key, NodeContentSize);
                CozyTiledFactory.GetInstance(obj.Value).DrawAt(gameTime, spriteBatch, ActualPosition, NodeContentSize);
            }
        }