コード例 #1
0
        public override void _Ready()
        {
            var size      = GetViewportRect().Size;
            var attractor = new PhysicsAttractor()
            {
                Position = size / 2
            };

            AddChild(attractor);

            var spawner = new SimpleTouchSpawner()
            {
                SpawnFunction = (position) =>
                {
                    var body = new SimpleBall()
                    {
                        GravityScale   = 0,
                        Mass           = 2,
                        GlobalPosition = position
                    };
                    body.AddToGroup("rigidbody");
                    return(body);
                }
            };

            AddChild(spawner);

            // Two initial balls
            spawner.SpawnBody(new Vector2(size.x * 0.25f, size.y * 0.25f));
            spawner.SpawnBody(new Vector2(size.x * 0.75f, size.y * 0.75f));
        }
コード例 #2
0
ファイル: Balls.cs プロジェクト: LEDPi/LEDPi
        private void Generate()
        {
            _balls = new SimpleBall[NumberOfBalls];
            for (int i = 0; i < NumberOfBalls; ++i)
            {
                _balls[i] = new SimpleBall
                {
                    X  = _rnd.Next(0, 29),
                    Y  = _rnd.Next(0, 29),
                    dX = _rnd.NextDouble() + 0.5,
                    dY = _rnd.NextDouble() + 0.5
                };

                if (_rnd.Next(1, 3) == 1)
                {
                    _balls[i].dX = -_balls[i].dX;
                }

                if (_rnd.Next(1, 3) == 1)
                {
                    _balls[i].dY = -_balls[i].dY;
                }
            }
        }
コード例 #3
0
            public override void _Ready()
            {
                ball1 = new SimpleBall()
                {
                    Radius   = Radius,
                    Position = new Vector2(-Distance, -Distance)
                };
                ball2 = new SimpleBall()
                {
                    Radius   = Radius,
                    Position = new Vector2(Distance, Distance)
                };
                AddChild(ball1);
                AddChild(ball2);

                var join = new PinJoint2D()
                {
                    NodeA    = ball1.GetPath(),
                    NodeB    = ball2.GetPath(),
                    Softness = 0.1f
                };

                ball1.AddChild(join);
            }