Inheritance: ICollisionChecker
Ejemplo n.º 1
0
        private List <Tuple <IPhysicalEntity, IPhysicalEntity> > ComputeCollisionPairs(
            out List <Vector2> collisionPositions, List <IPhysicalEntity> collisionGroup,
            float firstCollidingTime)
        {
            // make a minimal step forward. There is a collision in the next minimal time step - resolve that collision
            List <Vector2> positions = GetPositions(collisionGroup);

            MoveCollisionGroup(collisionGroup, firstCollidingTime);

            collisionPositions = GetPositions(collisionGroup);

            List <IPhysicalEntity> objectsInCollision =
                collisionGroup.Where(m_collisionChecker.Collides).ToList();

            List <Tuple <IPhysicalEntity, IPhysicalEntity> > collidingCouples =
                CollisionChecker.CollidingCouples(objectsInCollision);

            SetPositions(collisionGroup, positions);
            return(collidingCouples);
        }
Ejemplo n.º 2
0
        private void InitPhysics()
        {
            Physics = new Physics.Physics();

            IMovementPhysics movementPhysics = new MovementPhysics();
            ICollisionChecker collisionChecker = new CollisionChecker(Atlas);

            // TODO MICHAL: setter for physics implementation
            /*
            m_collisionResolver = new NaiveCollisionResolver(collisionChecker, movementPhysics);
            /*/
            m_collisionResolver = new MomentumCollisionResolver(collisionChecker, movementPhysics);
            //*/

            //Log.Instance.Debug("World.ToyWorldCore.ToyWorld: Loading Successful");
        }