public GameEngine(IUpdate[] updateSystems, IRender[] renderSystems, PlayerRenderSystem player, MonsterRenderSystem monster) : this() // what does this 'this' do ??? Lower framerate when removed. { player.Render(GameTime); monster.Render(GameTime); _updateSystems = updateSystems; _renderSystems = renderSystems; }
static void Main(string[] args) { StartSetupScreen(); var world = new World(); LevelOne levelOne = new LevelOne(); var fpsCounter = new FramesPerSecondCounter(world); var fpsWriter = new FpsRenderer(world); MapLevelDetails map = new MapLevelDetails(25, 11); // initialize map world.Set(map); MapRenderer mapRenderer = new MapRenderer(world); Queue <string> playerMessageQueue = new Queue <string>(2); world.Set(playerMessageQueue); MessageBoxRenderer messageBoxRenderer = new MessageBoxRenderer(world); HealthComponent health = new HealthComponent() { Health = new RegenerateAttribute() { Current = 27, Max = 40, Name = "Health", RegenRatePerSecond = 0.5 } }; ManaComponent mana = new ManaComponent() { Mana = new RegenerateAttribute() { Current = 25, Max = 30, Name = "Mana", RegenRatePerSecond = 0.2 } }; ExperienceBar xpBar = new ExperienceBar(); PlayerStats playerStats = new PlayerStats("Dave", health, mana, xpBar); world.Set(playerStats); ConsoleInputSystem playerInput = new ConsoleInputSystem(world); PlayerMovementSystem playerMovementSystem = new PlayerMovementSystem(world); PlayerRenderSystem player = new PlayerRenderSystem(world); PlayerPosition playerStartPosition = new PlayerPosition(map, world); //initialize player playerStartPosition.MoveTo(27); world.Set(playerStartPosition); MonsterMoveController[] monsters = levelOne.CreateMonsters(world, map); //initialize monsters world.Set(monsters); MonsterMovementSystem monsterMovement = new MonsterMovementSystem(world); MonsterRenderSystem monstersRenderer = new MonsterRenderSystem(world); List <string> combatMessagesQueue = new List <string>(3); world.Set(combatMessagesQueue); CombatHandler combatHandler = new CombatHandler(world); world.Set(combatHandler); CombatMessages combatMessages = new CombatMessages(world); var updateSystems = new IUpdate[] { playerInput, playerMovementSystem, combatHandler, monsterMovement, fpsCounter, health, mana }; //Order is important! var renderSystems = new IRender[] { player, monstersRenderer, mapRenderer, messageBoxRenderer, combatMessages, fpsCounter, fpsWriter, health, mana, xpBar }; GameEngine gameEngine = new GameEngine(updateSystems, renderSystems, player, monstersRenderer); mapRenderer.PrintMap(map.Map); gameEngine.Start(); }
static void Main(string[] args) { System.Console.OutputEncoding = Encoding.Unicode; //System.Console.WriteLine("\u2665"); //System.Console.WriteLine("\uF496"); //System.Console.Write('\u003A'); //System.Console.WriteLine('\u0029');// //System.Console.Write('\u263A'); //System.Console.Write('♥'); //System.Console.Write('♡'); //System.Console.WriteLine('\u263B'); //System.Console.Read(); Console.SetWindowSize(120, 35); Console.CursorVisible = false; var world = new World(); var health = new HealthComponent(world) { Health = new RegenAttribute { Current = 50, Max = 100, Name = "Health", RegenRatePerSecond = 1 } }; var mana = new ManaComponent(world) { Mana = new RegenAttribute { Current = 30, Max = 60, Name = "Mana", RegenRatePerSecond = 0.2 } }; var fpsCounter = new FramesPerSecondCounter(world); var fpsWriter = new FpsRenderer(world); var inputSystem = new ConsoleInputSystem(world); var playerRenderSystem = new PlayerRenderSystem(world); var monsterRenderSystem = new MonsterRenderSystem(world); var playerMovement = new PlayerMovementSystem(world); var monsterMovement = new MonsterMovementSystem(world); //Initialize Player position var initialPlayerPosition = new PlayerPosition(); initialPlayerPosition.MoveTo(10, 10); world.Set(initialPlayerPosition); //initializ monster/s var initialMonsterPosition = new MonsterPosition(); initialMonsterPosition.MoveTo(12, 12); world.Set(initialMonsterPosition); var updateSystems = new IUpdate[] { inputSystem, fpsCounter, playerMovement, monsterMovement, health, mana }; //Order is important! var renderSystems = new IRender[] { playerRenderSystem, monsterRenderSystem, health, mana, fpsWriter, fpsCounter }; GameEngine gameEngine = new GameEngine(updateSystems, renderSystems); gameEngine.Start(); }