コード例 #1
0
ファイル: Physic.cs プロジェクト: RhythNS/MonoNet
        public Physic()
        {
            Instance          = this;
            rigidbodiesSquare = new List <Rigidbody>();
            rigidbodiesCircle = new List <Rigidbody>();
            transformsSquare  = new List <Transform2>();
            transformsCicle   = new List <Transform2>();
            triggerableHelper = new TriggerableHelper();

            overlapManager   = new RecursiveOverlapManager <Rigidbody>(new Box2D(-100, -100, 1000, 840), 3);
            tempListOverlaps = new List <Rigidbody>(20);
        }
コード例 #2
0
ファイル: Physic.cs プロジェクト: RhythNS/MonoNet
        public void SetLevelBox(Box2D box, int layersForOverlap)
        {
            RecursiveOverlapManager <Rigidbody> newManager = new RecursiveOverlapManager <Rigidbody>(box, layersForOverlap);

            if (overlapManager.IsLast())
            {
                newManager.AddAll(overlapManager.GetListWhenLast());
            }
            else
            {
                List <Rigidbody> allBodies = new List <Rigidbody>();
                overlapManager.GetAllOverlaps(allBodies);
                newManager.AddAll(allBodies);
            }
            overlapManager = newManager;
        }
コード例 #3
0
 public RecursiveOverlapManager(Rect rect, int layersDown)
 {
     this.rect = rect;
     isLast    = layersDown <= 0;
     if (isLast)
     {
         overlapables = new List <T>();
     }
     else
     {
         layersDown--;
         helpers       = new RecursiveOverlapManager <T> [4];
         rect.width   *= 0.5f;
         rect.height  *= 0.5f;
         helpers[0]    = new RecursiveOverlapManager <T>(rect, layersDown);
         rect.y       += rect.height;
         helpers[1]    = new RecursiveOverlapManager <T>(rect, layersDown);
         rect.x       += rect.width;
         helpers[2]    = new RecursiveOverlapManager <T>(rect, layersDown);
         rect.position = new Vector2(this.rect.x + rect.width, this.rect.y);
         helpers[3]    = new RecursiveOverlapManager <T>(rect, layersDown);
     }
 }