public virtual void Initialize(World2D world, RectInt collider) { Collider = collider; World = world; RenderNode = UINode.Engine.Instance.CreateNode(Collider, World.PlatformNode, "Platform-Node"); var canvas = RenderNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.Gray, ConsoleColor.Blue); var imageNode = UINode.Engine.Instance.CreateNode(new RectInt(Vector2Int.Zero, Collider.Size), RenderNode, "Platform-Image"); Image = imageNode.AddUIComponent <Bitmap>(); Image.LoadFromFile(m_ImgFilePath); }
public virtual void Initialize(World2D world, RectInt collider) { Collider = collider; World = world; RenderNode = UINode.Engine.Instance.CreateNode(Collider, World.WorldStaticNode, "Static-Node"); var canvas = RenderNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.Gray, ConsoleColor.Blue); var imageNode = UINode.Engine.Instance.CreateNode(new RectInt(Vector2Int.Zero, Collider.Size), RenderNode, "Wall-Image"); Image = imageNode.AddUIComponent <UnlitBox>(); Image.UnlitCharacter = ' '; }
public void Initialize(World2D world, RectInt collider, bool withSpikeGraphics) { Collider = collider; World = world; RenderNode = UINode.Engine.Instance.CreateNode(Collider, World.WorldStaticNode, "DeathZone-Node"); var canvas = RenderNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.Black, ConsoleColor.Red); if (withSpikeGraphics) { var imageNode = UINode.Engine.Instance.CreateNode(new RectInt(Vector2Int.Zero, Collider.Size), RenderNode, "DeathZone-Image"); Image = imageNode.AddUIComponent <UnlitBox>(); Image.UnlitCharacter = 'V'; } }
public override void Initialize(World2D world, RectInt collider) { m_Direction = (Direction) new Random(DateTime.Now.Millisecond).Next(0, 2); m_PlatformMoveTimers = new List <KeyValuePair <int, float> >(); Collider = collider; World = world; RenderNode = UINode.Engine.Instance.CreateNode(Collider, World.PlatformNode, "Platform-Node"); var canvas = RenderNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.Black, ConsoleColor.Blue); var imageNode = UINode.Engine.Instance.CreateNode(new RectInt(Vector2Int.Zero, Collider.Size), RenderNode, "Platform-Image"); Image = imageNode.AddUIComponent <Bitmap>(); Image.LoadFromFile((m_Direction == Direction.Left)? "./Assets/SlidingPlatformLeft.txt" : "./Assets/SlidingPlatformRight.txt"); }
public void Initialize(int id, World2D world, Vector2Int pos, CharacterDirection dir) { Id = id; Health = c_MaxHealth; m_World = world; Collider = new RectInt(pos, new Vector2Int(1, 2)); Direction = dir; RenderNode = UINode.Engine.Instance.CreateNode(Collider, world.CharacterNode, "Character-Node"); var canvas = RenderNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.Black, c_CharacterColors[id]); var imageNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, 1, 2), RenderNode, "Character-Image"); Image = imageNode.AddUIComponent <Bitmap>(); m_RightBitmap = System.IO.File.ReadAllLines("./Assets/CharacterRight.txt"); m_LeftBitmap = System.IO.File.ReadAllLines("./Assets/CharacterLeft.txt"); m_DeathBitmap = System.IO.File.ReadAllLines("./Assets/CharacterDeath.txt"); Image.Load((dir == CharacterDirection.Right) ? m_RightBitmap : m_LeftBitmap); }
private void enterLeaderBoard() { for (int i = 0; i < 20; i++) { playThemeSong(); } State = GameState.Leaderboard; Mode = GameMode.Demo; // game world World = new World2D(0, new RectInt(Vector2Int.One, c_GameWindowSize)); m_LeaderBoardUINode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, 1, 1)); int boardX = 10; int boardWidth = World.TowerTopNode.Bounds.Width - 20; // create Hint UI var hintNode = UINode.Engine.Instance.CreateNode(new RectInt(boardX, 27, boardWidth, 1), null, "Hint-CanvasNode"); var canvas = hintNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.Black, ConsoleColor.DarkGray); var hintTextNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, boardWidth, 1), hintNode, "Hint-TextBoxNode"); var hintTextBox = hintTextNode.AddUIComponent <TextBox>(); hintTextBox.text = "ESC: main menu"; hintTextBox.verticalAlignment = TextBox.VerticalAlignment.Middle; hintTextBox.horizontalAlignment = TextBox.HorizontalAlignment.Center; int showCount = 5; // single player string singlePlayerBoards = "SINGLE PLAYER\n"; for (int i = 0; i < showCount; i++) { if (i < SaveProgress.Data.SinglePlayerScores.Count) { var tuple = SaveProgress.Data.SinglePlayerScores[i]; string line = string.Format("{0} - {1, -12} {2:D8}", i + 1, tuple.Item1, tuple.Item2); singlePlayerBoards += "\n" + line; } else { string line = string.Format("{0} - {1, -12} {2:D8}", i + 1, "empty", 0); singlePlayerBoards += "\n" + line; } } var boardcanvasNode = UINode.Engine.Instance.CreateNode(new RectInt(boardX, 4, boardWidth, 7), m_LeaderBoardUINode, "TutorialNode"); canvas = boardcanvasNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.DarkRed, ConsoleColor.Yellow); var textNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, boardWidth, 7), boardcanvasNode, "TutorialNode"); var unlitBg = textNode.AddUIComponent <UnlitBox>(); unlitBg.UnlitCharacter = ' '; var textBox = textNode.AddUIComponent <TextBox>(); textBox.text = singlePlayerBoards; textBox.horizontalAlignment = TextBox.HorizontalAlignment.Center; textBox.verticalAlignment = TextBox.VerticalAlignment.Top; // single player string twoPlayerBoards = "TWO PLAYERS COOP\n"; for (int i = 0; i < showCount; i++) { if (i < SaveProgress.Data.TwoPlayerScores.Count) { var tuple = SaveProgress.Data.TwoPlayerScores[i]; string line = string.Format("{0} - {1, -12} {2:D8}", i + 1, tuple.Item1, tuple.Item2); twoPlayerBoards += "\n" + line; } else { string line = string.Format("{0} - {1, -12} {2:D8}", i + 1, "empty", 0); twoPlayerBoards += "\n" + line; } } boardcanvasNode = UINode.Engine.Instance.CreateNode(new RectInt(boardX, 14, boardWidth, 7), m_LeaderBoardUINode, "TutorialNode"); canvas = boardcanvasNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.DarkRed, ConsoleColor.Yellow); textNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, boardWidth, 7), boardcanvasNode, "TutorialNode"); unlitBg = textNode.AddUIComponent <UnlitBox>(); unlitBg.UnlitCharacter = ' '; textBox = textNode.AddUIComponent <TextBox>(); textBox.text = twoPlayerBoards; textBox.horizontalAlignment = TextBox.HorizontalAlignment.Center; textBox.verticalAlignment = TextBox.VerticalAlignment.Top; }
private void enterInGameScene() { State = GameState.InGame; IsFinished = false; IsPaused = false; m_InputName = new StringBuilder(""); // frame UI m_PlayGroundNode = UINode.Engine.Instance.CreateNode(new RectInt(Vector2Int.Zero, c_GameWindowSize + Vector2Int.One), null, "Playground-Node"); var playgroundCanvas = m_PlayGroundNode.AddUIComponent <SingleColorCanvas>(); playgroundCanvas.CanvasPixelColor = new PixelColor(ConsoleColor.Black, ConsoleColor.White); var playgroundLayoutNode = UINode.Engine.Instance.CreateNode(new RectInt(Vector2Int.Zero, c_GameWindowSize + Vector2Int.One), m_PlayGroundNode, "PlaygroundLayout-Node"); var layoutBitmap = playgroundLayoutNode.AddUIComponent <Bitmap>(); layoutBitmap.LoadFromFile("./Assets/Layout.txt", Bitmap.DrawType.Sliced); // game world World = new World2D((Mode == GameMode.SinglePlayer)? 1 : 2, new RectInt(Vector2Int.One, c_GameWindowSize)); // register player dead event AliveCounter = new HashSet <int>(); foreach (var character in World.Characters) { int id = character.Id; AliveCounter.Add(id); character.OnDie += () => handleOnPlayerDie(id); } // game UI RectInt gameUISize = new RectInt(new Vector2Int(0, c_GameWindowSize.Y + 1), new Vector2Int(c_GameWindowSize.X + 1, 5)); var uiNode = UINode.Engine.Instance.CreateNode(gameUISize, null, "Game UI"); var canvas = uiNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.DarkGray, ConsoleColor.White); RectInt panelBounds = new RectInt(new Vector2Int(0, 0), new Vector2Int(c_GameWindowSize.X + 1, 5)); var layoutNode = UINode.Engine.Instance.CreateNode(panelBounds, uiNode, "Game UI"); var layout = layoutNode.AddUIComponent <Bitmap>(); layout.LoadFromFile("./Assets/Layout-Empty.txt", Bitmap.DrawType.Sliced); // register character hp , create hp ui m_HpTexts = new List <TextBox>(); m_HpBarTexts = new List <TextBox>(); for (int i = 0; i < World.Characters.Count; i++) { var character = World.Characters[i]; character.OnHealthChanged += (int health) => handleOnCharacterHpChanged(character.Id, health); var textNode = UINode.Engine.Instance.CreateNode(new RectInt(3, 1 + i * 2, 10, 1), uiNode, "Game UI"); var text = textNode.AddUIComponent <TextBox>(); text.text = string.Format("P{0} HP: {1, 2}/{2, 2}", i + 1, 10, Character.c_MaxHealth); text.horizontalAlignment = TextBox.HorizontalAlignment.Left; text.verticalAlignment = TextBox.VerticalAlignment.Middle; m_HpTexts.Add(text); var hpBarCanvasNode = UINode.Engine.Instance.CreateNode(new RectInt(18, 1 + i * 2, 20, 1), uiNode, "Game UI"); var hpBarCanvas = hpBarCanvasNode.AddUIComponent <SingleColorCanvas>(); hpBarCanvas.CanvasPixelColor = new PixelColor(ConsoleColor.DarkGreen, ConsoleColor.DarkGreen); var hpBarBackNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, 20, 1), hpBarCanvasNode, "Game UI - Text"); text = hpBarBackNode.AddUIComponent <TextBox>(); text.text = new string(" "); var hpBarInsideCanvasNode = UINode.Engine.Instance.CreateNode(new RectInt(18, 1 + i * 2, 20, 1), uiNode, "Game UI - Bar"); var hpBarInsideCanvas = hpBarInsideCanvasNode.AddUIComponent <SingleColorCanvas>(); hpBarInsideCanvas.CanvasPixelColor = new PixelColor(ConsoleColor.Yellow, ConsoleColor.Yellow); var actualInsideTextNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, 20, 1), hpBarInsideCanvasNode, "Game UI - Bar -Text"); text = actualInsideTextNode.AddUIComponent <TextBox>(); text.text = new string(" "); m_HpBarTexts.Add(text); } // add level ui var lvlUINode = UINode.Engine.Instance.CreateNode(new RectInt(39, 1, 10, 3), uiNode); m_LevelText = lvlUINode.AddUIComponent <TextBox>(); m_LevelText.text = "LEVEL\n000"; m_LevelText.horizontalAlignment = TextBox.HorizontalAlignment.Center; m_LevelText.verticalAlignment = TextBox.VerticalAlignment.Middle; World.OnTotalLevelChanged += handleOnTotalLevelChanged; // create Hint UI var hintNode = UINode.Engine.Instance.CreateNode(new RectInt(0, World.TowerTopNode.Bounds.Size.Y + 7, World.TowerTopNode.Bounds.Size.X, 1), null, "Hint-CanvasNode"); canvas = hintNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.Black, ConsoleColor.DarkGray); var hintTextNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, World.TowerTopNode.Bounds.Size.X, 1), hintNode, "Hint-TextBoxNode"); var hintTextBox = hintTextNode.AddUIComponent <TextBox>(); hintTextBox.text = "F1: turn on/off optimized mode in game\nF2: pause/resume game"; hintTextBox.verticalAlignment = TextBox.VerticalAlignment.Middle; hintTextBox.horizontalAlignment = TextBox.HorizontalAlignment.Center; // create GAME OVER UI var gameOverNode = UINode.Engine.Instance.CreateNode(new RectInt(0, World.TowerTopNode.Bounds.Size.Y / 2, World.TowerTopNode.Bounds.Size.X + 1, 5), null, "GO-CanvasNode"); m_GameOverCanvas = gameOverNode.AddUIComponent <SingleColorCanvas>(); m_GameOverCanvas.CanvasPixelColor = new PixelColor(ConsoleColor.DarkRed, ConsoleColor.Yellow); var goUnlitBoardNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, World.TowerTopNode.Bounds.Size.X + 1, 5), gameOverNode, "GO-UnlitNode"); var goUnlitBox = goUnlitBoardNode.AddUIComponent <UnlitBox>(); goUnlitBox.UnlitCharacter = ' '; var goTextNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, World.TowerTopNode.Bounds.Size.X + 1, 5), gameOverNode, "GO-TextBoxNode"); m_GameOverText = goTextNode.AddUIComponent <TextBox>(); m_GameOverText.text = "GAME OVER\n\n\npress enter to confirm"; m_GameOverText.verticalAlignment = TextBox.VerticalAlignment.Top; m_GameOverText.horizontalAlignment = TextBox.HorizontalAlignment.Center; m_InputFieldCanvasNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 2, World.TowerTopNode.Bounds.Size.X + 1, 1), gameOverNode, "InputCanvasNode"); canvas = m_InputFieldCanvasNode.AddUIComponent <SingleColorCanvas>(); canvas.CanvasPixelColor = new PixelColor(ConsoleColor.Red, ConsoleColor.Yellow); var inputUnlitBoxNode = UINode.Engine.Instance.CreateNode(new RectInt(13, 0, 24, 1), m_InputFieldCanvasNode, "InputNode"); inputUnlitBoxNode.AddUIComponent <UnlitBox>().UnlitCharacter = ' '; var inputTextNode = UINode.Engine.Instance.CreateNode(new RectInt(0, 0, World.TowerTopNode.Bounds.Size.X + 1, 1), inputUnlitBoxNode, "InputNode"); m_InputText = inputTextNode.AddUIComponent <TextBox>(); m_InputText.text = "PLEASE INPUT YOUR NAME"; m_InputText.verticalAlignment = TextBox.VerticalAlignment.Middle; m_InputText.horizontalAlignment = TextBox.HorizontalAlignment.Center; gameOverNode.IsActive = false; m_InputFieldCanvasNode.IsActive = false; // Setup bg settings World.BackgroundImageNode.IsActive = !m_OptimizedMode; }
public override void Initialize(World2D world, RectInt collider) { base.Initialize(world, collider); (RenderNode.Canvas as SingleColorCanvas).CanvasPixelColor = new PixelColor(ConsoleColor.Black, ConsoleColor.Red); }