private static void FirstExample() { var worldSize = new Vector2D(25, 25); var renderer = new Renderer(worldSize); Logger.BasePoint = new Vector2D(0, 0); Logger.LineLengthLimit = 32; Logger.LineNumberLimit = 18; var core = new Base(); core.Initialize(); for (var n = 0; n < worldSize.X; n++) { core.AddObject(new Wall { Position = new Vector2D(0, n), Layer = 3 }); core.AddObject(new Wall { Position = new Vector2D(n, 0), Layer = 3 }); core.AddObject(new Wall { Position = new Vector2D(n, worldSize.Y - 1), Layer = 3 }); core.AddObject(new Wall { Position = new Vector2D(worldSize.X - 1, n), Layer = 3 }); } var buffer = new Material[renderer.Size.X, renderer.Size.Y]; Console.CursorVisible = false; core.AddObject(new Entity { Position = new Vector2D(2, 3), Layer = 3 }); core.AddObject(new Entity { Position = new Vector2D(2, 4), Layer = 3 }); core.AddObject(new Entity { Position = new Vector2D(2, 5), Layer = 3 }); core.AddObject(new Entity { Position = new Vector2D(2, 6), Layer = 3 }); buffer = renderer.Render(buffer); CLIHelper.DrawArray(buffer, new Vector2D(1, 1)); while (true) { Thread.Sleep(33); core.DoStep(); buffer = renderer.Render(buffer); CLIHelper.DrawArray(buffer, new Vector2D(1, 1)); } }
private static void Main(string[] args) { Console.CursorVisible = false; Console.Title = "ASCIIGame"; Console.SetWindowSize(76, 22); Console.SetBufferSize(76, 22); Console.BackgroundColor = Color.Black; var isPlaying = true; Vector2D worldSize = new Vector2D(20, 20); var renderer = new Renderer(worldSize); Logger.BasePoint = new Vector2D(42, 2); Logger.LineLengthLimit = 32; Logger.LineNumberLimit = 18; Base core = new Base(); core.Initialize(); var player = new Player { Position = new Vector2D(5, 5), Layer = 3 }; CLIHelper.DrawRect(Vector2D.Zero, new Vector2D(75, 21), new Material(Color.Empty, Color.Gray), new Material(Color.Empty, Color.Black)); CLIHelper.DrawRect(Vector2D.Zero, new Vector2D(40, 21), new Material(Color.Empty, Color.Gray), new Material(Color.Empty, Color.Black)); Logger.PrintLine("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); var rand = new Random(); //заполнение мира объектами for (int i = 0; i < worldSize.X; i++) { for (int j = 0; j < worldSize.Y; j++) { if (rand.Next(100) < 10) { core.AddObject(new Stone { Position = new Vector2D(i, j), Layer = 2 }); continue; } else { core.AddObject(new Grass { Position = new Vector2D(i, j), Layer = 1 }); } if (rand.Next(100) < 5) { core.AddObject(new Enemy { target = player, Position = new Vector2D(i, j), Layer = 3 }); } } } var bonus = new Bonus { Layer = 4 }; core.AddObject(bonus); var gameManager = new GameManager(() => PlaceBonus(worldSize, core, bonus), worldSize); core.AddObject(gameManager); core.AddObject(player); PlaceBonus(worldSize, core, bonus); var buffer = new Material[renderer.Size.X, renderer.Size.Y]; buffer = renderer.Render(buffer); CLIHelper.DrawArray(buffer, new Vector2D(1, 1)); Input.GameInput = true; Input.TOGGLE_GAME_INPUT = ConsoleKey.Oem3; while (isPlaying) { Thread.Sleep(33); core.SetPressedKey(Console.ReadKey(true).Key); core.DoStep(); buffer = renderer.Render(buffer); CLIHelper.DrawArray(buffer, new Vector2D(1, 1)); PrintScore(gameManager.Score); while (Console.KeyAvailable) { Console.ReadKey(true); } } }
private static void SecondExample() { var worldSize = new Vector2D(25, 25); var renderer = new Renderer(worldSize); Logger.BasePoint = new Vector2D(0, 0); Logger.LineLengthLimit = 32; Logger.LineNumberLimit = 18; var core = new Base(); core.Initialize(); for (var n = 0; n < worldSize.X; n++) { core.AddObject(new Wall { Position = new Vector2D(0, n), Layer = 3 }); core.AddObject(new Wall { Position = new Vector2D(n, 0), Layer = 3 }); core.AddObject(new Wall { Position = new Vector2D(n, worldSize.Y - 1), Layer = 3 }); core.AddObject(new Wall { Position = new Vector2D(worldSize.X - 1, n), Layer = 3 }); } var buffer = new Material[renderer.Size.X, renderer.Size.Y]; Console.CursorVisible = false; var bonus = new Bonus { SpawnBounds = new Vector2D(3, 20), Layer = 2 }; var hunter = new Hunter { Position = new Vector2D(2, 3), Layer = 3, Target = bonus }; core.AddObject(hunter); core.AddObject(bonus); buffer = renderer.Render(buffer); CLIHelper.DrawArray(buffer, new Vector2D(1, 1)); while (true) { Thread.Sleep(33); core.DoStep(); buffer = renderer.Render(buffer); CLIHelper.DrawArray(buffer, new Vector2D(1, 1)); } }