Beispiel #1
0
        internal bool Approach(Animal who, IWithMass to, TimeSpan elapsed)
        {
            float xMoveAmount = 0;
            float yMoveAmount = 0;

            var multiplier = (float)(who.MovementSpeed * elapsed.TotalSeconds);

            if (who.Mass.PosX <= to.Mass.PosX)
            {
                xMoveAmount = 1 * multiplier;
            }
            else
            {
                xMoveAmount = -1 * multiplier;
            }

            if (who.Mass.PosY <= to.Mass.PosY)
            {
                yMoveAmount = 1 * multiplier;
            }
            else
            {
                yMoveAmount = -1 * multiplier;
            }

            return(SetNewPosition(who, xMoveAmount, yMoveAmount));
        }
Beispiel #2
0
 internal float Distance(IWithMass a, IWithMass b)
 {
     return(Distance(a.Mass.PosX, a.Mass.PosY, b.Mass.PosX, b.Mass.PosY));
 }
Beispiel #3
0
 internal bool IsEnoughCloseToInteract(Animal who, IWithMass withWho)
 {
     return(who.Mass.Intersects(withWho.Mass));
 }