コード例 #1
0
        void OnMarioInstanceVsA_BrickListCollisionOccurred(Super_Marios_Bros.Entities.Mario first, Entities.A_Brick second)
        {
            Console.WriteLine("Collsion occured");
            bool wasPushedDown = first.AxisAlignedRectangleInstance.LastMoveCollisionReposition.Y < 0;

            if (wasPushedDown && PassonClass.mariobig)
            {
                Console.WriteLine("was pushed down true");
                bool hasDestroyedBlock = false;
                for (int i = 0; i < A_BrickList.Count; i++)
                {
                    //Console.WriteLine("New Brick");
                    if (A_BrickList[i].AxisAlignedRectangleInstance.CollideAgainst(first.CollisionThing))
                    {
                        // New code:
                        Console.WriteLine("Collided");
                        CombinedShapeCollection.RemoveRectangle(A_BrickList[i].AxisAlignedRectangleInstance);
                        A_BrickList[i].Imdead();
                        hasDestroyedBlock = true;
                        break;
                    }
                }
                if (!hasDestroyedBlock)
                {
                    // New code:
                    Console.WriteLine("The other way");

                    CombinedShapeCollection.RemoveRectangle(second.AxisAlignedRectangleInstance);

                    second.Imdead();
                }
            }
        }
コード例 #2
0
 void OnMarioInstanceVsA_BrickListCollisionOccurredTunnel(Super_Marios_Bros.Entities.Mario first, Entities.A_Brick second)
 {
     if (this.MarioInstanceVsA_BrickListCollisionOccurred != null)
     {
         MarioInstanceVsA_BrickListCollisionOccurred(first, second);
     }
 }