public QuadTree(int level, Rectangle bounds) { Level = level; GameObjects = new List<GameObject>(); Nodes = new QuadTree[4]; Bounds = bounds; }
public Level() { var graphicsDevice = GameServices.GetService<GraphicsDevice>(); QuadTree = new QuadTree(0, new Rectangle(0, 0, graphicsDevice.Viewport.Width, graphicsDevice.Viewport.Height)); Spawners = new List<Spawner>(); SafeToIterate = new List<GameObject>(); AllDrawableGameObjects = new List<GameObject>(); StarField = new Starfield(); }
private void split() { int subWidth = Bounds.Width / 2; int subHeight = Bounds.Height / 2; Nodes[0] = new QuadTree(Level + 1, new Rectangle(Bounds.Left, Bounds.Top, subWidth, subHeight)); Nodes[1] = new QuadTree(Level + 1, new Rectangle(Bounds.Left + subWidth, Bounds.Top, subWidth, subHeight)); Nodes[2] = new QuadTree(Level + 1, new Rectangle(Bounds.Left, Bounds.Top + subHeight, subWidth, subHeight)); Nodes[3] = new QuadTree(Level + 1, new Rectangle(Bounds.Left + subWidth, Bounds.Top + subHeight, subWidth, subHeight)); }