Exemplo n.º 1
0
        protected override void OnSystemAdd()
        {
            physicsSystem = (Bullet2PhysicsSystem)Services.GetServiceAs <IPhysicsSystem>();
            if (physicsSystem == null)
            {
                physicsSystem = new Bullet2PhysicsSystem(Services);
                Services.AddService(typeof(IPhysicsSystem), physicsSystem);
                var gameSystems = Services.GetServiceAs <IGameSystemCollection>();
                gameSystems.Add(physicsSystem);
            }

            ((IReferencable)physicsSystem).AddReference();

            debugShapeRendering = Services.GetServiceAs <PhysicsShapesRenderingService>();
            if (debugShapeRendering == null)
            {
                debugShapeRendering = new PhysicsShapesRenderingService(Services);
                var gameSystems = Services.GetServiceAs <IGameSystemCollection>();
                gameSystems.Add(debugShapeRendering);
            }

            Simulation = physicsSystem.Create(this);

            sceneSystem = Services.GetSafeServiceAs <SceneSystem>();
        }
Exemplo n.º 2
0
        protected override void OnSystemAdd()
        {
            physicsSystem = (Bullet2PhysicsSystem)Services.GetServiceAs <IPhysicsSystem>();
            if (physicsSystem == null)
            {
                physicsSystem = new Bullet2PhysicsSystem(Services);
                var game = Services.GetServiceAs <IGame>();
                game?.GameSystems.Add(physicsSystem);
            }

            debugShapeRendering = Services.GetServiceAs <PhysicsShapesRenderingService>();
            if (debugShapeRendering == null)
            {
                debugShapeRendering = new PhysicsShapesRenderingService(Services);
                var game = Services.GetServiceAs <IGame>();
                game?.GameSystems.Add(debugShapeRendering);
            }

            Simulation = physicsSystem.Create(this);

            sceneSystem = Services.GetSafeServiceAs <SceneSystem>();
        }
Exemplo n.º 3
0
        protected override void OnSystemAdd()
        {
            try
            {
                physicsSystem = (Bullet2PhysicsSystem)Services.GetSafeServiceAs <IPhysicsSystem>();
            }
            catch (ServiceNotFoundException)
            {
                physicsSystem = new Bullet2PhysicsSystem(Services);
                var game = Services.GetSafeServiceAs <IGame>();
                game.GameSystems.Add(physicsSystem);
            }

            simulation = physicsSystem.Create(this);

            var gfxDevice = Services.GetSafeServiceAs <IGraphicsDeviceService>()?.GraphicsDevice;

            if (gfxDevice != null)
            {
                debugShapeRendering = new PhysicsDebugShapeRendering(gfxDevice);
            }
        }