コード例 #1
0
        public bool ActorIsAboutToWalkInto(IMoveable movingObject)
        {
            var distance = movingObject.Position.Center.GetDistanceInDirection(Position.GetSidePoint(movingObject.Direction.Opposite()), movingObject.Direction);

            if (distance <= movingObject.Position.Width)
            {
                return(true);
            }

            var distancePerFrame = movingObject.Motion.FrameVelocity.X.Abs();

            var framesUntilHit = (int)distance / distancePerFrame;

            return(framesUntilHit <= 30);
        }