示例#1
0
        public void _Update(TimeSpan delta)
        {
            var sound = game.GetService <SoundManager>();

            if (Running)
            {
                var pos     = camera.Transform.Position;
                var forward = camera.Transform.Orientation.Transform(Vector3.Forward);
                var up      = camera.Transform.Orientation.Transform(Vector3.Up);
                sound.UpdateListener(delta, pos, forward, up);
            }
            currentTime += delta.TotalSeconds;
            for (int i = (Coroutines.Count - 1); i >= 0; i--)
            {
                if (!Coroutines[i].Run(this, delta.TotalSeconds))
                {
                    Coroutines.RemoveAt(i);
                    i--;
                }
            }
            while (events.Count > 0 && events.Peek().Time <= currentTime)
            {
                var ev = events.Dequeue();
                ProcessEvent(ev);
            }
            foreach (var obj in Objects.Values)
            {
                obj.Update();
            }
            camera.Update();
            if (Renderer != null)
            {
                World.Update(delta);
            }
        }
示例#2
0
        public void _Update(double delta)
        {
            var sound = game.GetService<SoundManager>();
            if (Running)
            {
                var pos = camera.Transform.Position;
                var forward = Vector3.TransformNormal(-Vector3.UnitZ, camera.Transform.Orientation);
                var up = Vector3.TransformNormal(Vector3.UnitY, camera.Transform.Orientation);
                sound.UpdateListener(delta, pos, forward, up);
            }
			currentTime += delta;
            foreach (var obj in sceneObjects.Values) obj.UpdateIfMain();
            if (text != null)
            {
                if (currentTime > text.Start)
                {
                    game.GetService<Interface.Typewriter>().PlayString(gameData.GetString(text.TextIDS));
                    text = null;
                }
            }
            //
            foreach (var instance in instances)
            {
                instance.Update(delta);
            }
            //
            foreach (var obj in sceneObjects.Values) obj.Update();
            camera.Update();
            if(Renderer != null)
			    World.Update(delta);
		}
示例#3
0
 public void _Update(TimeSpan delta)
 {
     currentTime += delta.TotalSeconds;
     for (int i = (Coroutines.Count - 1); i >= 0; i--)
     {
         if (!Coroutines[i].Run(this, delta.TotalSeconds))
         {
             Coroutines.RemoveAt(i);
             i--;
         }
     }
     while (events.Count > 0 && events.Peek().Time <= currentTime)
     {
         var ev = events.Dequeue();
         ProcessEvent(ev);
     }
     foreach (var obj in Objects.Values)
     {
         obj.Update();
     }
     camera.Update();
     if (Renderer != null)
     {
         World.Update(delta);
     }
 }
示例#4
0
        public void _Update(TimeSpan delta)
        {
            var sound = game.GetService <SoundManager>();

            if (Running)
            {
                var pos     = camera.Transform.Position;
                var forward = Vector3.TransformNormal(-Vector3.UnitZ, camera.Transform.Orientation);
                var up      = Vector3.TransformNormal(Vector3.UnitY, camera.Transform.Orientation);
                sound.UpdateListener(delta, pos, forward, up);
            }
            currentTime += delta.TotalSeconds;
            if (text != null)
            {
                if (currentTime > text.Start)
                {
                    game.GetService <Interface.Typewriter>().PlayString(gameData.GetString(text.TextIDS));
                    text = null;
                }
            }

            for (int i = (Coroutines.Count - 1); i >= 0; i--)
            {
                if (!Coroutines[i].Run(this, delta.TotalSeconds))
                {
                    Coroutines.RemoveAt(i);
                    i--;
                }
            }
            while (events.Count > 0 && events.Peek().Time <= currentTime)
            {
                var ev = events.Dequeue();
                ProcessEvent(ev);
            }
            foreach (var obj in Objects.Values)
            {
                obj.Update();
            }
            camera.Update();
            if (Renderer != null)
            {
                World.Update(delta);
            }
        }
示例#5
0
 public void _Update(TimeSpan delta)
 {
     currentTime += delta.TotalSeconds;
     for (int i = (coroutines.Count - 1); i >= 0; i--)
     {
         if (!coroutines[i].Run(this, delta.TotalSeconds))
         {
             coroutines.RemoveAt(i);
             i--;
         }
     }
     while (events.Count > 0 && events.Peek().Time <= currentTime)
     {
         var ev = events.Dequeue();
         ProcessEvent(ev);
     }
     camera.Update();
     World.Update(delta);
 }