Ejemplo n.º 1
0
		/// <summary>
		/// Инициализация движка
		/// </summary>
		/// <param name="physicalEngine">Движок, который будет использован</param>
		/// <param name="world">Мир этого движка</param>
		/// <param name="root">Мир тел</param>
		public void InitializeEngine(PhysicalEngines physicalEngine, Body root)
		{

			switch(physicalEngine)
			{
				case PhysicalEngines.Bepu: _world = new BepuWorld();
					break;
				case PhysicalEngines.Farseer: _world = new FarseerWorld();
					break;
				default: _world = new FarseerWorld();
					break;
			}

			_currentEngine = physicalEngine;

			root.ChildAdded += BodyChildAdded;
			root.ChildRemoved += BodyChildRemoved;

			foreach (var body in root.GetSubtreeChildrenFirst())
			{
				if (body != root)
					AcquireBody(body);
			}

			// теперь, когда тела добавленны, соединим те, у которых есть материальные предки 
			foreach (var body in root.GetSubtreeChildrenFirst())
			{
				if (body != root)
					FindParentAndAttach(body);
			}
		}
Ejemplo n.º 2
0
        /// <summary>
        /// Инициализация движка
        /// </summary>
        /// <param name="physicalEngine">Движок, который будет использован</param>
        /// <param name="world">Мир этого движка</param>
        /// <param name="root">Мир тел</param>
        public static void InitializeEngine(PhysicalEngines physicalEngine, Body root)
        {
            switch (physicalEngine)
            {
            case PhysicalEngines.Bepu: _world = new BepuWorld();
                break;

            case PhysicalEngines.Farseer: _world = new FarseerWorld();
                break;

            default: _world = new FarseerWorld();
                break;
            }

            _currentEngine = physicalEngine;

            root.ChildAdded   += BodyChildAdded;
            root.ChildRemoved += BodyChildRemoved;

            foreach (var body in root.GetSubtreeChildrenFirst())
            {
                if (body != root)
                {
                    AcquireBody(body);
                }
            }

            // теперь, когда тела добавленны, соединим те, у которых есть материальные предки
            foreach (var body in root.GetSubtreeChildrenFirst())
            {
                if (body != root)
                {
                    FindParentAndAttach(body);
                }
            }
        }