public void RandomizingPositionsBG() { for (int i = 0; i < N; i++) { m_Objects[i].Position = m_Objects[(i + 1) % N].Position; } m_Tree.Update(); }
public void Update(float dt) { var mousePos = GetMousePos(); foreach (var testObject in m_TestObjects) { var toMouse = (mousePos - testObject.Key.Position).Normalized(); testObject.Key.Position += (testObject.Value + toMouse) * dt * m_SpeedMultiplier; testObject.Key.FillColor = Color.Blue; WrapPosition(testObject.Key); } m_Grid.Update(); foreach (var obj in m_Grid.GetKClosestObjects(GetMousePos(), 30)) { obj.FillColor = Color.Red; } var closest = m_Grid.GetClosestObject(GetMousePos()); if (closest != null) { closest.FillColor = Color.Green; } }
public void Setup() { m_Grid = new BucketGrid <TestObject>(new FloatRect(0, 0, 100, 100), (int)Math.Sqrt(NumBuckets), (int)Math.Sqrt(NumBuckets)); m_Objects = new List <TestObject>(NumObjects); for (int i = 0; i < NumObjects; i++) { var obj = new TestObject(RandomPosition()); m_Objects.Add(obj); m_Grid.Add(obj); } m_Grid.Update(); }
public BucketGridDemo() { m_Bounds = new FloatRect(new Vector2f(0, 0), (Vector2f)Game.Window.Size); m_Grid = new BucketGrid <CircleShape>(m_Bounds, 100, 100); for (var i = 0; i < m_NumCircles; i++) { var pos = GetRandomPos(); var obj = new CircleShape(2f) { FillColor = Color.Blue, Position = pos }; m_TestObjects.Add(obj, RandomVelocity()); m_Grid.Add(obj); } m_Grid.Update(); }