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(); }
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(); }
public DemoBasicScene() { screenSpaceRenderer = new ScreenSpaceRenderer(-10, uiRenderLayer); //addRenderer(screenSpaceRenderer); screenSpaceRenderer.shouldDebugRender = false; finalRenderDelegate = this; }
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(); }
/// <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); }
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(); }
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(); }
public BasicScene() { screenSpaceRenderer = new ScreenSpaceRenderer(-10, GameLayerSetting.playerUiLayer, GameLayerSetting.uiLayer); screenSpaceRenderer.shouldDebugRender = false; finalRenderDelegate = this; }
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(); }
public UiController() { _screenSpaceRender = new ScreenSpaceRenderer(100, ScreenSpaceRenderLayer); //Scene.final }
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; }