Example #1
0
        public SampleScene(bool addExcludeRenderer = true, bool needsFullRenderSizeForUI = false) : base()
        {
            // setup one renderer in screen space for the UI and then (optionally) another renderer to render everything else
            if (needsFullRenderSizeForUI)
            {
                // dont actually add the renderer since we will manually call it later
                _screenSpaceRenderer = new ScreenSpaceRenderer(100, SCREEN_SPACE_RENDER_LAYER);
                _screenSpaceRenderer.shouldDebugRender = false;
                finalRenderDelegate = this;
            }
            else
            {
                addRenderer(new ScreenSpaceRenderer(100, SCREEN_SPACE_RENDER_LAYER));
            }

            if (addExcludeRenderer)
            {
                addRenderer(new RenderLayerExcludeRenderer(0, SCREEN_SPACE_RENDER_LAYER));
            }

            // create our canvas and put it on the screen space render layer
            canvas = createEntity("ui").addComponent(new UICanvas());
            canvas.isFullScreen = true;
            canvas.renderLayer  = SCREEN_SPACE_RENDER_LAYER;
            setupSceneSelector();
        }
Example #2
0
        public SampleScene(bool addExcludeRenderer = true, bool needsFullRenderSizeForUi = false)
        {
            _needsFullRenderSizeForUi = needsFullRenderSizeForUi;

            // setup one renderer in screen space for the UI and then (optionally) another renderer to render everything else
            if (needsFullRenderSizeForUi)
            {
                // dont actually add the renderer since we will manually call it later
                _screenSpaceRenderer = new ScreenSpaceRenderer(100, ScreenSpaceRenderLayer);
                _screenSpaceRenderer.ShouldDebugRender = false;
                FinalRenderDelegate = this;
            }
            else
            {
                AddRenderer(new ScreenSpaceRenderer(100, ScreenSpaceRenderLayer));
            }

            if (addExcludeRenderer)
            {
                AddRenderer(new RenderLayerExcludeRenderer(0, ScreenSpaceRenderLayer));
            }

            // create our canvas and put it on the screen space render layer
            Canvas = CreateEntity("ui").AddComponent(new UICanvas());
            Canvas.IsFullScreen = true;
            Canvas.RenderLayer  = ScreenSpaceRenderLayer;
            SetupSceneSelector();
        }
Example #3
0
 public DemoBasicScene()
 {
     screenSpaceRenderer = new ScreenSpaceRenderer(-10, uiRenderLayer);
     //addRenderer(screenSpaceRenderer);
     screenSpaceRenderer.shouldDebugRender = false;
     finalRenderDelegate = this;
 }
Example #4
0
        private void SetupRenderering()
        {
            camera.setMinimumZoom(4);
            camera.setMaximumZoom(6);
            camera.setZoom(4);

            // Rendering all layers but lights and screenspace
            var renderLayerExcludeRenderer = addRenderer(new RenderLayerExcludeRenderer(0,
                                                                                        Layers.Lights, Layers.Lights2, Layers.HUD));

            renderLayerExcludeRenderer.renderTargetClearColor = new Color(0, 0, 0);

            // Rendering lights
            var lightRenderer = addRenderer(new RenderLayerRenderer(1,
                                                                    Layers.Lights, Layers.Lights2));

            lightRenderer.renderTexture          = new RenderTexture();
            lightRenderer.renderTargetClearColor = new Color(80, 80, 80, 255);

            // Postprocessor effects for lighting
            var spriteLightPostProcessor = addPostProcessor(new SpriteLightPostProcessor(2, lightRenderer.renderTexture));

            // Render screenspace
            _screenSpaceRenderer = new ScreenSpaceRenderer(100, Layers.HUD);
            _screenSpaceRenderer.shouldDebugRender = false;
            addRenderer(_screenSpaceRenderer);

            // Letterbox effect when a winner is determined
            LetterBox = addPostProcessor(new CinematicLetterboxPostProcessor(3));
        }
        public override void initialize()
        {
            var myMapRenderer = new ScreenSpaceRenderer(100, SCREEN_SPACE_RENDER_LAYER);

            base.addRenderer(myMapRenderer);
            this.myService = (CommunicationManager)Nez.Core.services.GetService(typeof(CommunicationManager));
            base.addEntityProcessor(new PlayerMovementSystem());
            base.initialize();
        }
Example #6
0
 /// <summary>
 /// Sets up the renderer, canvas, stage and puts in a table filling the whole screen.
 /// </summary>
 private void SetUp()
 {
     renderer = new ScreenSpaceRenderer(0, UIRenderLayer);
     Entity.Scene.AddRenderer(renderer);
     Canvas = new UiCanvas();
     Canvas.SetRenderLayer(UIRenderLayer);
     Entity.AddComponent(Canvas);
     Table = new Table();
     Canvas.Stage.AddElement(Table);
     Table.SetFillParent(true);
 }
Example #7
0
        public LevelOne() : base()
        {
            clearColor           = Color.Black;
            _screenSpaceRenderer = new ScreenSpaceRenderer(100, SCREEN_SPACE_RENDER_LAYER);
            _screenSpaceRenderer.shouldDebugRender = false;
            this.addRenderer(_screenSpaceRenderer);

            this.addRenderer(new DefaultRenderer());
            var postEffectControllerEntity = createEntity("postEffectController");

            postEffectController = postEffectControllerEntity.addComponent(new Utilities.PostEffectController());

            postEffectController.AddScanlines();
            addPostProcessor(new VignettePostProcessor(0));



            //uiController = createEntity("ui").addComponent(new Utilities.UIController());


            var background = createEntity("background");

            backgroundTileMap = content.Load <Nez.Tiled.TiledMap>("maps/map2");
            //Scene.setDefaultDesignResolution(backgroundTileMap.width, backgroundTileMap.height, policy);

            var objectLayer = backgroundTileMap.getObjectGroup("objects");

            var tiledMapComponent = background.addComponent(new TiledMapComponent(backgroundTileMap, "collisionLayer"));

            tiledMapComponent.setLayersToRender(new string[] { "collisionLayer", "floor", "Sky", "buildings", "boxes", "city" });
            background.addComponent(new CameraBounds(new Vector2(backgroundTileMap.tileWidth, backgroundTileMap.tileWidth), new Vector2(backgroundTileMap.tileWidth * (backgroundTileMap.width - 1), backgroundTileMap.tileWidth * (backgroundTileMap.height - 1))));
            tiledMapComponent.renderLayer = 100;
            setupPlayer(objectLayer);
            //setupEnemies(objectLayer);
            setupEnemySpawn();
            setupUI();
            setupAudio();


            initialize();
        }
Example #8
0
        public override void initialize()
        {
            clearColor = Color.Black;
            addRenderer(new DefaultRenderer());
            var managerScene = createEntity("ManagerScene");

            managerScene.addComponent(new DebugScene());
            managerScene.addComponent(new LevelBehavior());

            // setup a pixel perfect screen that fits our map
            setDesignResolution(Constants.SCREEN_WIDTH, Constants.SCREEN_HEIGHT, Scene.SceneResolutionPolicy.ShowAllPixelPerfect);

            _screenSpaceRenderer = addRenderer(new ScreenSpaceRenderer(100, Constants.SCREEN_SPACE_MENU_RENDER_LAYER));
            _screenSpaceRenderer.shouldDebugRender = true;

            addRenderer(new RenderLayerExcludeRenderer(0, 5));
            Screen.setSize(Constants.SCREEN_WIDTH, Constants.SCREEN_HEIGHT);

            canvas = createEntity("ui").addComponent(new UICanvas());
            canvas.isFullScreen = true;
            canvas.renderLayer  = Constants.SCREEN_SPACE_MENU_RENDER_LAYER;
        }
        public override void initialize()
        {
            this.Communication = Nez.Core.services.GetService <CommunicationManager>();
            setDesignResolution(1280, 720, Scene.SceneResolutionPolicy.NoBorderPixelPerfect);
            Screen.setSize(1280, 720);
            var myRenderer = new ScreenSpaceRenderer(100, SCREEN_SPACE_RENDER_LAYER);

            myRenderer.wantsToRenderAfterPostProcessors = false;
            addRenderer(myRenderer);
            var myGUIRenderer = new RenderLayerExcludeRenderer(0, SCREEN_SPACE_RENDER_LAYER);

            addRenderer(myGUIRenderer);
            canvas = createEntity("GUI").addComponent(new UICanvas());
            Texture2D LoginBackground = content.Load <Texture2D>("GUI/Login Elements/LoginBackground");

            //canvas.isFullScreen = true;
            canvas.stage.addElement(new Image(LoginBackground));
            ScrollPaneStyle myScrollStyle = new ScrollPaneStyle();

            myScrollStyle.hScrollKnob = new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Scrollbar/ScrollHandle"));
            myScrollStyle.hScroll     = new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Scrollbar/HScrollBar"));
            Bodies = new ScrollPane(myBodyGroup, myScrollStyle);
            Hair   = new ScrollPane(aHairGroup, myScrollStyle);
            HorizontalGroup myHGroup = new HorizontalGroup();

            myHGroup.setAlignment(Align.left);
            myHGroup.setY(70);
            myHGroup.setSpacing(0);
            VerticalGroup myCharacterDataGroup = new VerticalGroup();

            myCharacterDataGroup.setSpacing(20);
            myCharacterDataGroup.setAlignment(Align.left);
            myCharacterViewerGroup = new VerticalGroup();
            myCharacterViewerGroup.setY(70);
            HorizontalGroup mySexGroup = new HorizontalGroup();

            mySexGroup.setSpacing(10);


            CheckBox Male = new CheckBox("Male", new CheckBoxStyle(new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Unchecked")), new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Checked")), Nez.Core.content.Load <BitmapFont>("Fonts/NezDefaultBMFont"), Color.White));

            myDisplayedHair = new Image();
            myDisplayedBody = new Image();
            myImageStack.addElement(myDisplayedBody);
            myImageStack.addElement(myDisplayedHair);
            var ContainerStack = new Container(myImageStack);

            ContainerStack.setWidth(128);
            ContainerStack.setHeight(128);
            myCharacterViewerGroup.addElement(ContainerStack);

            CharacterCreatorSwitch = new Button(new ButtonStyle(new SubtextureDrawable(Core.content.Load <Texture2D>("GUI/Buttons/savebutton")), new SubtextureDrawable(Core.content.Load <Texture2D>("GUI/Buttons/savebutton")), new SubtextureDrawable(Core.content.Load <Texture2D>("GUI/Buttons/savebutton"))));
            CharacterCreatorSwitch.setTouchable(Touchable.Disabled);
            myCharacterViewerGroup.setAlignment(Align.bottom);
            myCharacterViewerGroup.addElement(Bodies);
            myCharacterViewerGroup.addElement(Hair);
            myCharacterViewerGroup.setPadTop(270);
            CheckBox Female = new CheckBox("Female", new CheckBoxStyle(new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Unchecked")), new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Checked")), Nez.Core.content.Load <BitmapFont>("Fonts/NezDefaultBMFont"), Color.White));

            Male.onChanged += delegate(bool myResult)
            {
                if (myResult)
                {
                    PlayerData.Sex = GameData.GameDataClasses.Entities.SEX.MALE;
                }
                else
                {
                    PlayerData.Sex = null;
                }
                Female.programmaticChangeEvents = false; //Prevents it from firing.
                Female.isChecked = false;
                Female.programmaticChangeEvents = true;
                UpdateCharacterWindow();
            };
            Female.onChanged += delegate(bool myResult)
            {
                if (myResult)
                {
                    PlayerData.Sex = GameData.GameDataClasses.Entities.SEX.FEMALE;
                }
                else
                {
                    PlayerData.Sex = null;
                }
                Male.programmaticChangeEvents = false; //Prevents it from firing.
                Male.isChecked = false;
                Male.programmaticChangeEvents = true;
                UpdateCharacterWindow();
            };

            mySexGroup.addElement(Male);
            mySexGroup.addElement(Female);
            myCharacterDataGroup.addElement(mySexGroup);
            HorizontalGroup myRaceGroupAndDescription = new HorizontalGroup();
            VerticalGroup   myRaceGroup  = new VerticalGroup();
            List <CheckBox> myRaceChecks = new List <CheckBox>();

            foreach (String A in Directory.EnumerateFiles("./Content/Races"))
            {
                String   aRacename   = Path.GetFileNameWithoutExtension(A);
                Race     aLoadedRace = Nez.Core.content.Load <Race>("Races/" + aRacename);
                CheckBox aNewRace    = new CheckBox(aRacename, new CheckBoxStyle(new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Unchecked")), new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Checked")), Nez.Core.content.Load <BitmapFont>("Fonts/NezDefaultBMFont"), Color.White));
                myRaceChecks.Add(aNewRace);
                aNewRace.onChanged += delegate(bool myResult)
                {
                    var Racebox = aNewRace;
                    if (myResult)
                    {
                        foreach (CheckBox a in myRaceChecks)
                        {
                            if (Racebox != a)
                            {
                                a.isChecked = false;
                            }
                        }

                        Race myInternalRace = aLoadedRace;
                        SetRace(myInternalRace);
                        UpdateCharacterWindow();
                    }
                    else
                    {
                        SetRace(null);
                        UpdateCharacterWindow();
                    }
                };
                aNewRace.OnMouseOver += delegate(bool myResult)
                {
                    if (myResult)
                    {
                        Race myInternalRace = aLoadedRace;
                        myRaceDescription.setText(myInternalRace.Description);
                        myRaceDescription.setWrap(true);
                    }
                    else
                    {
                        myRaceDescription.setText("");
                    }
                };
                myRaceGroup.addElement(aNewRace);
            }
            myRaceDescription = new Label("Race Description HERE");
            myRaceDescription.setWidth(Screen.width * 0.25f);
            myRaceDescription.setHeight(30);
            myRaceDescription.setWrap(true);
            myRaceGroup.setAlignment(Align.bottomLeft);
            myRaceGroupAndDescription.setSpacing(10);
            myRaceGroupAndDescription.setWidth(100);
            myRaceGroupAndDescription.addElement(myRaceGroup);
            myRaceGroupAndDescription.setAlignment(Align.left);
            Container aRaceDescriptionHolder = new Container();

            aRaceDescriptionHolder.setSize(Screen.width * 0.25f, 30);
            aRaceDescriptionHolder.setY(0);
            aRaceDescriptionHolder.addElement(myRaceDescription);
            myRaceGroupAndDescription.addElement(aRaceDescriptionHolder);
            myCharacterDataGroup.addElement(myRaceGroupAndDescription);
            myHGroup.addElement(myCharacterDataGroup);
            myHGroup.addElement(myCharacterViewerGroup);
            //Professions GUI
            HorizontalGroup myHorizontalProfessions = new HorizontalGroup();
            VerticalGroup   myProfessionsbox        = new VerticalGroup();

            //Iterate professions however we're doing it
            myHorizontalProfessions.addElement(myProfessionsbox);
            VerticalGroup myProfessionsDesc       = new VerticalGroup();
            Label         myProfessionDescription = new Label("Profession Description HERE");

            myProfessionsDesc.addElement(myProfessionDescription);
            Label myProfessionAlert = new Label("Profession Alertbox HERE");

            myProfessionsDesc.addElement(myProfessionAlert);
            myHorizontalProfessions.addElement(myProfessionsDesc);
            myCharacterDataGroup.addElement(myHorizontalProfessions);
            canvas.stage.addElement(myHGroup);
            //myHGroup.add(myInternalHGroup);*/
            base.initialize();
        }
Example #10
0
 public BasicScene()
 {
     screenSpaceRenderer = new ScreenSpaceRenderer(-10, GameLayerSetting.playerUiLayer, GameLayerSetting.uiLayer);
     screenSpaceRenderer.shouldDebugRender = false;
     finalRenderDelegate = this;
 }
Example #11
0
        public override void initialize()
        {
            this.myService = (CommunicationManager)Nez.Core.services.GetService(typeof(CommunicationManager));
            // default to 1280x720 with no SceneResolutionPolicy
            setDesignResolution(1280, 720, Scene.SceneResolutionPolicy.ExactFit);
            Screen.setSize(1280, 720);
            var myRenderer = new ScreenSpaceRenderer(100, SCREEN_SPACE_RENDER_LAYER);

            myRenderer.wantsToRenderAfterPostProcessors = false;
            addRenderer(myRenderer);
            var myGUIRenderer = new RenderLayerExcludeRenderer(0, SCREEN_SPACE_RENDER_LAYER);

            addRenderer(myGUIRenderer);
            canvas = createEntity("GUI").addComponent(new UICanvas());
            canvas.isFullScreen = true;           // this.myCommunicationsManager = myCommunicationsManager;
            SpriteFont myFont            = content.Load <SpriteFont>("Arial");
            Texture2D  TextboxBackground = content.Load <Texture2D>("GUI/Login Elements/TextField");
            Texture2D  PasswordHeader    = content.Load <Texture2D>("GUI/Login Elements/PasswordButtonHeader");
            Texture2D  LoginHeader       = content.Load <Texture2D>("GUI/Login Elements/LoginButtonHeader");
            Texture2D  LoginBackground   = content.Load <Texture2D>("GUI/Login Elements/LoginBackground");

            canvas.renderLayer = SCREEN_SPACE_RENDER_LAYER;


            TextFieldStyle myStyle         = TextFieldStyle.create(Color.White, Color.White, Color.Blue, Color.Black);
            VerticalGroup  myVerticalGroup = new VerticalGroup();
            Image          myLabel1        = new Image(LoginHeader);

            myVerticalGroup.addElement(myLabel1);
            myStyle.background = new SubtextureDrawable(TextboxBackground);

            myUsername = new TextField("", myStyle);
            myUsername.setHeight(TextboxBackground.Height);
            myUsername.setBounds(0, 0, TextboxBackground.Width, TextboxBackground.Height);
            myUsername.setPreferredWidth(TextboxBackground.Width);
            myUsername.setAlignment(Align.center);
            myUsername.setMaxLength(10);

            myVerticalGroup.addElement(myUsername);
            Image myLabel2 = new Image(PasswordHeader);

            myVerticalGroup.addElement(myLabel2);
            myPassword = new TextField("", myStyle);
            myPassword.setPasswordMode(true);
            myPassword.setPreferredWidth(TextboxBackground.Width);
            myPassword.setAlignment(Align.center);
            myPassword.setMaxLength(10);
            myVerticalGroup.addElement(myPassword);
            myLoginFailure = new Label("Invalid Login!");
            myVerticalGroup.addElement(myLoginFailure);
            canvas.stage.addElement(new Image(LoginBackground, Scaling.Fit, 0));
            canvas.stage.addElement(myVerticalGroup);
            myVerticalGroup.setPosition(Screen.width / 2, Screen.height / 2);
            var moonTex      = content.Load <Texture2D>("GUI/Mouse/Green");
            var playerEntity = createEntity("player", new Vector2(200, 200));

            playerEntity.addComponent(new Sprite(moonTex));
            myBUtton = new VirtualButton();
            var versionLabel = new Label(InternalSettings.Version);

            versionLabel.setPosition(0, Screen.height - versionLabel.preferredHeight);
            canvas.stage.addElement(versionLabel);
            myLoginFailure.setIsVisible(false);
            myBUtton.nodes.Add(new Nez.VirtualButton.KeyboardKey(Microsoft.Xna.Framework.Input.Keys.Enter));
            myService.AssignProcessor(delegate(Packet P)
            {
                myLoginFailure.setIsVisible(true);
            }, typeof(LoginFailedPacket));


            myService.AssignProcessor(delegate(Packet P)
            {
                if (((PlayerInfoPacket)P).NewChar)
                {
                    CharacterCreation myScene = SceneManager.GetScene <CharacterCreation>("CharacterCreator");
                    myScene.SetPlayerData(((PlayerInfoPacket)P).GetPlayerData());
                    MainWorldViewScene myWorldScene = SceneManager.GetScene <MainWorldViewScene>("MainWorldViewScene");
                    myWorldScene.SetPlayerData(((PlayerInfoPacket)P).GetPlayerData());
                    SceneManager.ChangeScenes("CharacterCreator");
                    myWorldScene.SetMapData(((PlayerInfoPacket)P).myMap);
                    myService.AssignProcessor(null, typeof(PlayerInfoPacket));
                    myService.AssignProcessor(null, typeof(LoginFailedPacket));
                }
                else
                {
                    MainWorldViewScene myScene = SceneManager.GetScene <MainWorldViewScene>("MainWorldViewScene");
                    myScene.SetPlayerData(((PlayerInfoPacket)P).GetPlayerData());
                    myScene.LoadInPlayer();
                    myScene.SetMapData(((PlayerInfoPacket)P).myMap);
                    SceneManager.ChangeScenes("MainWorldViewScene");
                    myService.AssignProcessor(null, typeof(PlayerInfoPacket));
                    myService.AssignProcessor(null, typeof(LoginFailedPacket));
                }
            }, typeof(PlayerInfoPacket));
            base.initialize();
        }
Example #12
0
 public UiController()
 {
     _screenSpaceRender = new ScreenSpaceRenderer(100, ScreenSpaceRenderLayer);
     //Scene.final
 }
Example #13
0
        public override void initialize()
        {
            base.initialize();

            // data
            _gameContext = Core.services.GetService <GameContext>();

            // Hide cursor
            Core.instance.IsMouseVisible = false;

            clearColor = new Color(147, 140, 106); // temporary background color

            // add fixed renderer
            var fixedRenderer =
                addRenderer(new ScreenSpaceRenderer(1023, renderlayer_ui_overlay, renderlayer_cursor_overlay));

            fixedRenderer.shouldDebugRender = false;

            // ...and add custom cursor
            var targetCursor    = createEntity("cursor");
            var cursorComponent = targetCursor.addComponent(new TargetCursor(renderlayer_cursor_overlay));

            cursorComponent.sprite.renderLayer = renderlayer_cursor_overlay;
            targetCursor.addComponent <MouseFollow>();

            // sprites
            var player = createEntity("player",
                                      new Vector2(Core.instance.defaultResolution.X / 2f, y: Core.instance.defaultResolution.Y / 2f));

            player.addComponent <Rookie>();
            player.addComponent <PlayerCharacterController>();

            // dummy
            var dummy = createEntity("dummy", new Vector2(916, 560));

            dummy.addComponent <Rookie>();
            dummy.addComponent <LogicCharacterController>();
            dummy.localRotation = -Mathf.PI / 2;

            // map
            var mapEntity    = createEntity("map_tiles");
            var mapAsset     = FufCore.contentSource.Load <TiledMap>($"{mapSource}/{_gameContext.map}");
            var mapComponent = mapEntity.addComponent(new TiledMapComponent(mapAsset, "blocks"));

            // map behind everything
            mapComponent.renderLayer = renderlayer_background;

            // add component to make camera follow the player
            var lockedCamera = camera.entity.addComponent(new LockedCamera(player, camera));

            // add HUD renderer
            var hudRenderer  = new ScreenSpaceRenderer(4, renderlayer_hud);
            var healthHudEnt = createEntity("health_ind");
            var healthHud    = healthHudEnt.addComponent(
                new Sprite(FufCore.contentSource.Load <Texture2D>("UI/Hud/health"))
            {
                renderLayer = renderlayer_hud
            });

            pauseRenderer = new ScreenSpaceRenderer(255, renderlayer_pause_overlay);
            var pauseBackdrop   = createEntity("pause_backdrop");
            var backdropTexture = Graphics.createSingleColorTexture(1, 1, new Color(100, 100, 100, 100));
//            Graphics.instance.batcher.draw(backdropTexture, new RectangleF(0, 0, Core.instance.defaultResolution.X, Core.instance.defaultResolution.Y));
            var backdropSprite = pauseBackdrop.addComponent(new Sprite(backdropTexture));

            backdropSprite.renderLayer        = renderlayer_pause_overlay;
            backdropSprite.transform.scale    = Core.instance.defaultResolution.ToVector2();
            backdropSprite.transform.position = Core.instance.defaultResolution.ToVector2() / 2;
            pauseRenderer.shouldDebugRender   = false;

//            camera.zoom = -0.5f;
        }