コード例 #1
0
        protected override void Initialize()
        {
            layers = new List <TileLayer>();

            for (int i = 0; i < deff.TileLayers.Count; i++)
            {
                layers.Add(new TileLayer(i, deff.PostRender, deff.TileLayers[i]));
            }

            int maxWidth  = int.MaxValue;
            int maxHeight = 0;
            int maxY      = 0;

            for (int i = 0; i < layers.Count; i++)
            {
                layers[i].Initialize();

                if (layers[i].MaxSize.Height > maxHeight)
                {
                    maxHeight = (int)layers[i].MaxSize.Height;
                }

                if (layers[i].MaxSize.Y < maxY)
                {
                    maxY = layers[i].MaxSize.Y;
                }

                if (maxWidth > layers[i].MaxSize.Width)
                {
                    maxWidth = (int)layers[i].MaxSize.Width;
                }
            }

            if (CameraManager.CurrentCamera != null)
            {
                Rectangle rect = new Rectangle(0, maxY, maxWidth, maxHeight);

                CameraManager.CurrentCamera.SetConstraint(rect);
                BroadPhase.ReInitialize(rect);
            }

            base.Initialize();
        }