Protogame.DefaultPlatforming.IsAtCeiling C# (CSharp) Méthode

IsAtCeiling() public méthode

The is on ground.
public IsAtCeiling ( IBoundingBox entity, IEnumerable entities, bool>.Func ground ) : bool
entity IBoundingBox /// The entity. ///
entities IEnumerable /// The entities. ///
ground bool>.Func /// The ground. ///
Résultat bool
        public bool IsAtCeiling(IBoundingBox entity, IEnumerable<IBoundingBox> entities, Func<IBoundingBox, bool> ground)
        {
            var entityExtended = new BoundingBox
            {
                Width = entity.Width,
                Height = entity.Height,
                XSpeed = entity.XSpeed,
                YSpeed = entity.YSpeed
            };
            entityExtended.Transform.Assign(_transformUtilities.CreateFromModifiedSRTTransform(
                entity.Transform,
                Vector3.One,
                Quaternion.Identity,
                new Vector3(0, -1, 0)));
            var collidableEntities = entities.Where(ground).Where(x => x != entity).ToArray();
            foreach (var collidableEntity in collidableEntities)
            {
                if (this._boundingBoxUtilities.Overlaps(entityExtended, collidableEntity))
                {
                    if (collidableEntity.Transform.LocalPosition.Y < entity.Transform.LocalPosition.Y)
                    {
                        return true;
                    }
                }
            }

            return false;
        }