Beispiel #1
0
        public override void Collide(FroggerObject fo, Rectangle intersection)
        {
            if (fo is Frog )
            {
                if (intersection.Area() > 0.75f)
                    has_frog=true;

                if (is_locked && intersection.Area() > 0.25f)
                {

                    Rectangle locked = new Rectangle(0.0f, 1.0f, 1.0f, 1.0f);
                    locked += rect.loc;

                    if(Rectangle.Area(locked.Intersect(fo.rect))<Rectangle.Area(locked.Intersect(fo.rect + fo.delta)))
                    {
                        fo.delta *= 0.0f;
                        fo.Stop();
                    }

                }

            }
        }
Beispiel #2
0
        public override void Collide(FroggerObject fo, Rectangle intersection)
        {
            float common_area = intersection.Area() / fo.rect.Area();

            if (fo.level == Level.Walking && common_area > 0.75)
            {
                fo.MoveBy(this.delta);
            }
            else if (fo.level == Level.Floor && common_area > 0.1)
            {
                //w coś uderzyliśmy
                this.colision=true;
            }
        }
Beispiel #3
0
 public override void Collide(FroggerObject fo, Rectangle intersection)
 {
     if( fo is Frog && intersection.Area()/rect.Area() > 0.75)
     {
         this.Remove();
     }
 }
Beispiel #4
0
        public override void Collide(FroggerObject fo, Rectangle intersection)
        {
            if (fo is Frog && intersection.Area() > 0.50f)
            {
                had_frog = true;
                has_frog = true;
            }

            base.Collide(fo, intersection);
        }
Beispiel #5
0
 public override void Collide(FroggerObject fo, Rectangle intersection)
 {
     if(fo is Frog && intersection.Area()/fo.rect.Area() > 0.75)
     {
         this.board.Win();
     }
 }
Beispiel #6
0
        public override void Collide(FroggerObject fo, Rectangle intersection)
        {
            float intersection_area=intersection.Area()/rect.Area();

            if (fo.level==Level.Floor && !is_moving && intersection.Area() / rect.Area() > 0.50)
            {
                this.Location = fo.Location.Align(this.Location, 1.0f);
                is_moving = true;
            }

            if(fo.level==Level.Floor &&  intersection_area > 0.10)
            {
                this.floor_area+=intersection_area;
            }
        }