public TerribleApp() { SystemManager = new SystemManager(); EventManager = new EventManager(); EntityManager = new EntityManager(SystemManager, EventManager); ResourceManager = new ResourceManager(); Renderer = new Renderer(); EngineInterface = new EngineInterface(EventManager); EngineInterface.RegisterEvents(); UpdateThread = new EngineThread(UpdateInit, Update, 60); RenderThread = new EngineThread(RenderInit, Render, 60); }
public override void Drive(object time) { BusTime busTime = (BusTime)time; EngineThread.Start(time); Console.WriteLine($"Current people in bus are: { People.Count}"); DateTime target = new DateTime(); target = DateTime.Now.AddMilliseconds(busTime.Duration); UInt16 numberOfTicks = (ushort)((target.Millisecond - DateTime.Now.Millisecond) / busTime.Timestep); Random rnd = new Random(654668); while (DateTime.Now.Millisecond < target.Millisecond) { for (int i = 0; i < numberOfTicks; i++) { double temp = rnd.NextDouble(); //Thread.Sleep(busTime.Timestep); if (temp >= 0.5) { APerson person = new Adult(); // person.stop = new Stop() person.Ticket = person.BuyTicket(person); person.BusEntrance = (IEnterable)this; bool canjoin = person.BusEntrance.CanEnter(person.Ticket); if (canjoin) { person.Ticket.RegisterEntrance(this); } } } } Console.WriteLine($"Current people in bus are: { People.Count}"); //Thread.Sleep(Convert.ToInt32(busTime.Timestep)); }