/// <summary> /// Creates a shader using a copy of another shader. /// </summary> /// <param name="copy">The shader to copy.</param> public Shader(Shader copy) : this(copy.shader) { }
// we need text-reveal mode or sth. edit richtext? public PlayState() { //Load shader VHSShader = new Shader(ShaderType.Fragment, Assets.VHS_SHADER); VHSShader2 = new Shader(ShaderType.Fragment, Assets.VHS_SHADER2); Global.theGame.Surface.AddShader(VHSShader); Global.theGame.Surface.AddShader(VHSShader2); // Create starfield. starFieldFar = new Image(Assets.GFX_STARFIELD); starFieldFar.Repeat = true; starFieldFar.Scroll = 0.3f; starFieldMid = new Image(Assets.GFX_STARFIELD); starFieldMid.Repeat = true; starFieldMid.Scroll = 0.6f; starFieldMid.Scale = 1.5f; starFieldClose = new Image(Assets.GFX_STARFIELD); starFieldClose.Repeat = true; starFieldClose.Scroll = 1.3f; starFieldClose.Scale = 3.0f; starFieldClose.Alpha = 0.5f; AddGraphic(starFieldFar); AddGraphic(starFieldMid); AddGraphic(starFieldClose); // Load map floorTiles = mapProject.CreateTilemap((TiledTileLayer)mapProject.Layers[0]); wallTiles = mapProject.CreateTilemap((TiledTileLayer)mapProject.Layers[1], mapProject.TileSets[1]); // Make sure walls have the correct tiles wallCollision = mapProject.CreateGridCollider((TiledTileLayer)mapProject.Layers[1], 3); floorCollision = mapProject.CreateGridCollider((TiledTileLayer)mapProject.Layers[0], 8); // Move camera to start point TiledObjectGroup mapObjects = (TiledObjectGroup)mapProject.Layers[2]; TiledObject strt = mapObjects.Objects[0]; // Make machines CameraX = strt.X - 320; CameraY = strt.Y - 240; // Add player thePlayer = new Player(strt.X, strt.Y); thePlayer.Layer = 20; // Add station & player to scene AddGraphic(floorTiles); Add(thePlayer); // Make items / machines for (int i = 0; i < mapObjects.Objects.Count; i++) { TiledObject curObj = mapObjects.Objects[i]; if (curObj.Name == "Wrench") { Item newWrench = new Item(curObj.X, curObj.Y, 4); Add(newWrench); } if (curObj.Name == "Crisps") { Item newWrench = new Item(curObj.X, curObj.Y, 7); Add(newWrench); } if (curObj.Name == "Donut") { Item newWrench = new Item(curObj.X, curObj.Y, 6); Add(newWrench); } if (curObj.Name == "VendingMachine") { Machine newMachine = new Machine(curObj.X, curObj.Y, "Vending Machine", "Full of delicious snacks.", "Looks like it's busted.", "It's rebooting.", 300, Assets.GFX_MACHINETOP, Assets.GFX_VENDING); Add(newMachine); } if (curObj.Name == "Computer") { Machine newMachine = new Machine(curObj.X, curObj.Y, "Computer", "The communications terminal... me.", "ERROR: HHHH\nhelp\n \n{color:ff0000}ERRCODE#391293EFF3{color:ffffff}", "It was just a screensaver.\nYou idiot.", 600, Assets.GFX_PC_TOP, Assets.GFX_PC_FRONT); Add(newMachine); } if (curObj.Type == "AirlockVert") { Airlock newAirlock = new Airlock(curObj.X, curObj.Y, true); Add(newAirlock); } if (curObj.Type == "AirlockHoriz") { Airlock newAirlock = new Airlock(curObj.X, curObj.Y, false); Add(newAirlock); } } AddGraphic(wallTiles); Add(thePlayer.crossHair); wallTest = new Entity(0, 0, null, wallCollision); Add(wallTest); floorTest = new Entity(0, 0, null, floorCollision); Add(floorTest); // Add hud msgBox = new Image(Assets.GFX_HUD); msgBox.Scroll = 0; msgBox.CenterOrigin(); msgBox.X = 320; msgBox.Y = 255 + msgBox.Height + 16; Entity hud1 = new Entity(); hud1.AddGraphic(msgBox); hud1.Layer = 10; Add(hud1); msgText = new RichText("", Assets.FONT_MSG, 8, 270, 50); msgText.DefaultShakeX = 0.4f; msgText.DefaultShakeY = 0.4f; msgText.X = 325 - msgBox.HalfWidth; msgText.Y = 255 + msgBox.Height - 8; msgText.Scroll = 0; msgText.String = ""; Entity hud2 = new Entity(); hud2.AddGraphic(msgText); hud2.Layer = 5; Add(hud2); }
/// <summary> /// Creates a shader using a copy of another shader. /// </summary> /// <param name="copy">The shader to copy.</param> public Shader(Shader copy) : this(copy.SFMLShader) { }