示例#1
0
        protected override void Update(GameTime gameTime)
        {
            float deltaTime = gameTime.ElapsedGameTime.Ticks * SecondsPerTick;

            stats.OnUpdate(deltaTime);

            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            base.Update(gameTime);

            inputSystem.Update();

            foreach (SystemUpdateTask sut in systemUpdateTasks)
            {
                sut.DeltaTime = deltaTime;
                ITaskCallback callback = Tasks.Enqueue(sut);
                taskCallbacks.Add(callback);
            }
            foreach (ITaskCallback callback in taskCallbacks)
            {
                callback.Wait();
            }
            taskCallbacks.Clear();

            eventBus.Update();
            entityWorld.Commit();
        }