/// <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); } }
/// <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); } } }