Пример #1
0
 /// <summary>
 /// Tarkistaa liikkuvan esineen collisionin ei liikkuvaan polygoniin
 /// </summary>
 /// <param name="who">liikkuva objekti</param>
 /// <param name="other">staattinen polygon</param>
 /// <returns></returns>
 private CollisionEventArgs PolygonCollision(PolygonCollider who, Polygon other)
 {
     return(PolygonCollision(
                who.Polygon,
                other,
                -who.Instance.Velocity,
                who.Instance.Position
                ));
 }
Пример #2
0
        /// <summary>
        /// Tarkastaa törmääkö joku gameobject
        /// </summary>
        /// <param name="other">Toinen gameobject != owner</param>
        /// <returns>true jos törmää, false muuten</returns>
        public override bool Collides(GameObject other, out CollisionEventArgs result)
        {
            result = new CollisionEventArgs();
            // ei voida törmätä itseen tai olemattomaan ;)
            if (other.Collider == null || other == Instance || !other.IsCollidable)
            {
                return(false);
            }

            PolygonCollider pCollider = other.Collider as PolygonCollider;

            if (pCollider == null)
            {
                throw new NotImplementedException("Ei osata collidaita " + other.Collider.GetType().Name);
            }


            result = PolygonCollision(this, pCollider);

            return(result.Intersecting || result.WillIntersect);
        }