Ejemplo n.º 1
0
        public void ApplyCollision(IEventTriggerer eventTriggerer, DynamicBody body)
        {
            var perp = _line.Normal.Perpendicular();
            var impulse = perp*-1.8*perp.Dot(body.Velocity); //TODO: requires mass;

            body.State = new BodyState(body.Position, body.Velocity + impulse, false);
        }
Ejemplo n.º 2
0
        public PhysicsEngine(IObservable<IGameEvent> events, IEventTriggerer eventTriggerer, IBarriers barriers)
        {
            _eventTriggerer = eventTriggerer;
            _barriers = barriers;

            events.OfType<AddGameObjectRequest>()
                .Subscribe(AddGameObject);

            events.OfType<PositionChangeRequest>()
                .Subscribe(ChangePosition);

            events.OfType<ApplyImpulseRequest>()
                .Subscribe(ApplyImpulse);

            events.OfType<AddForceRequest>()
                .Subscribe(AddForce);

            events.OfType<RemoveForceRequest>()
                .Subscribe(RemoveForce);
        }
Ejemplo n.º 3
0
 public SurfaceManager(IObservable<IGameEvent> events, IEventTriggerer eventTriggerer)
 {
     _eventTriggerer = eventTriggerer;
     events.OfType<AddSurfaceRequest>().Subscribe(AddSurface);
     events.OfType<PositionChanged>().Subscribe(PositionChanged);
 }
Ejemplo n.º 4
0
 public void Apply(IEventTriggerer eventTriggerer)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 5
0
 public GameEngine(IPhysicsEngine physicsEngine, ISurfaceManager surfaceManager, IEventTriggerer eventTriggerer)
 {
     _physicsEngine = physicsEngine;
     _surfaceManager = surfaceManager;
     _eventTriggerer = eventTriggerer;
 }