예제 #1
0
        public void RandomizingPositionsBG()
        {
            for (int i = 0; i < N; i++)
            {
                m_Objects[i].Position = m_Objects[(i + 1) % N].Position;
            }

            m_Tree.Update();
        }
예제 #2
0
        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();
        }
예제 #4
0
        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();
        }