public LevelSystem(GameController inController, Application inApp, SystemConfig inConfig = null) : base(inController, inApp, inConfig)
        {
            _config = inConfig as LevelSystemConfig;
            if (_config == null)
            {
                throw new Exception($"System config must be not null.");
            }

            ClearComponentList();

            Level = CreateLevel();
        }
        private Core.Level CreateLevel()
        {
            // --------------------------------------------------------------------------------
            // Setup Level
            // --------------------------------------------------------------------------------
            Level = CreateEmptyLevel();
            Level.Move(Vector2.zero);
            var levelSprite = SystemFacade.Resources.LoadSprite(ResourcesMap.Level);
            var levelView   = new SpriteView(this.application, "Level", LayerNames.Level);

            levelView.SetSprite(levelSprite);
            Level.AddLevel(levelView, new Vector3(0, 0, 1));
            ViewsContainer.AddView(levelView);
            // --------------------------------------------------------------------------------
            // Setup Background
            // --------------------------------------------------------------------------------

            /*var bgPos = new Vector2(
             *      (SystemFacade.Renderer.ScreenWidth / 2 / SystemFacade.Renderer.CurrentResolution)
             *     ,(SystemFacade.Renderer.ScreenHeight / 2 / SystemFacade.Renderer.CurrentResolution));*/

            var bgSprite = SystemFacade.Resources.LoadSprite(ResourcesMap.Background);

            _background = new SpriteView(this.application, "Background", LayerNames.Background);
            _background.SetSprite(bgSprite);

            //- duplicate the background to fit the level platform
            var duplicated = new SpriteView(this.application, "Background", LayerNames.Background);

            duplicated.SetSprite(bgSprite);

            _background.AddChild(duplicated);
            duplicated.SetPosition(new Vector2(_background.GetSize().x, 0));  //apply offset


            Level.AddBackground(_background, _config.backgroundPosition);
            ViewsContainer.AddView(_background);

            return(Level);
        }
Beispiel #3
0
 public JsonLevel(Core.Level level)
 {
     this.DisplayName = level.DisplayName;
     this.Name        = level.Name;
     this.Value       = level.Value;
 }