private void CheckCollisions(double ElapsedTime, List <ICollidable> Objects) { QTree.Clear(); for (int i = 0; i < Objects.Count; i++) { QTree.Add(Objects[i]); } QTree.CheckCollisions(); PairList <ICollidable> Collisions = QTree.GetCollisions(); for (int i = 0; i < Collisions.Count; i++) { Collisions.Get(i).Get(0).Collide(Collisions.Get(i).Get(1)); Collisions.Get(i).Get(1).Collide(Collisions.Get(i).Get(0)); } }
public void Render(Graphics g) { if (Children != null) { for (int i = 0; i < Children.Length; i++) { Children[i].Render(g); } } else { g.DrawText(Objects.Count.ToString(), (int)(X + Root.Offset.X), (int)(Y + Root.Offset.Y)); if (Objects.Count > 0) { Quad q = new Quad(this); //q.Color = ColorPicker.RandomColor(); q.Render(g); for (int i = 0; i < Objects.Count && Objects.Count > 1; i++) { if (Objects[i].Shape.GetType() == typeof(Rectangle)) { q = new Quad((Rectangle)Objects[i].Shape); q.Color = ColorPicker.ColorFromRGB(255, 0, 0); q.Render(g); } } for (int i = 0; i < Collisions.Count; i++) { if (Collisions.Get(i).Get(0).Shape.GetType() == typeof(Rectangle) && Collisions.Get(i).Get(1).Shape.GetType() == typeof(Rectangle)) { q = new Quad((Rectangle)Collisions.Get(i).Get(0).Shape); q.Color = ColorPicker.ColorFromRGB(0, 255, 0); q.Render(g); q = new Quad((Rectangle)Collisions.Get(i).Get(1).Shape); q.Color = ColorPicker.ColorFromRGB(0, 255, 0); q.Render(g); } } } } }