Ejemplo n.º 1
0
        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));
        }