public void CreateCustomField()
 {
     using (var node = SKFieldNode.CreateCustomField((Vector4 position, Vector4 velocity, float mass, float charge, double time) => {
         return(new Vector3(3, 1, 4));
     })) {
         // FIXME: the code below doesn't end up calling the anonymous delegate above.
         var v = node.Direction;
         Assert.AreEqual(0, v.X, "#x2");
         Assert.AreEqual(0, v.Y, "#y2");
         Assert.AreEqual(0, v.Z, "#z2");
         Assert.AreEqual(0, v.W, "#w2");
     }
 }
        public void CreateRadialGravityField()
        {
            using (SKFieldNode node = SKFieldNode.CreateRadialGravityField()) {
                var v = new Vector4(1, 2, 3, 4);
                node.Direction = v;
                Assert.AreEqual(node.Direction.X, 1, "#x1");
                Assert.AreEqual(node.Direction.Y, 2, "#y1");
                Assert.AreEqual(node.Direction.Z, 3, "#z1");
                Assert.AreEqual(node.Direction.W, 0, "#w1");

                v = node.Direction;
                Assert.AreEqual(v.X, 1, "#x2");
                Assert.AreEqual(v.Y, 2, "#y2");
                Assert.AreEqual(v.Z, 3, "#z2");
                Assert.AreEqual(v.W, 0, "#w2");
            }
        }
Exemple #3
0
        public override void DidMoveToView(SKView view)
        {
            // Setup Scene with SKNodes and call the sparks generator
            Proto1Dim1 = 0;
            Proto1Dim2 = 0;
            Proto1Dim3 = 0;

            switchInfo = false;
            infoTouch  = false;

            // Set inital bgcolor
            BackgroundColor = UIColor.FromRGBA(100, 200, 150, 120);

            // Background Sprite
            backgroundSprite = new SKSpriteNode("spark");
            backgroundSprite.ScaleTo(Frame.Size);
            backgroundSprite.Position  = new CGPoint(Frame.Width / 2, Frame.Height / 2);
            backgroundSprite.ZPosition = 0;
            backgroundSprite.Alpha     = 0.1f;
            AddChild(backgroundSprite);

            // Add Gravity Field
            fieldNode          = SKFieldNode.CreateSpringField();
            fieldNode.Enabled  = false;
            fieldNode.Position = new CGPoint(Frame.Size.Width / 2, Frame.Size.Height / 2);
            fieldNode.Strength = 0.5f;
            fieldNode.Region   = new SKRegion(Frame.Size);
            AddChild(fieldNode);

            // Change color, child not added only in test env
            mySave = new SKLabelNode("AppleSDGothicNeo-UltraLight")
            {
                Text     = "next >",
                FontSize = 18,
                Position = new CGPoint(Frame.Width - 65, (Frame.Height - 53))
            };
            mySave.Name      = "next";
            mySave.FontColor = UIColor.FromHSB(0, 0, 3f);
            mySave.Alpha     = 0.9f;
            mySave.ZPosition = 10;
            // AddChild(mySave);

            // Invisible sprite node to change to Info Mode, on the right top side infront of the info sprite
            navSprite           = new SKSpriteNode();
            navSprite.Name      = "navSprite";
            navSprite.Alpha     = 0.0000001f;
            navSprite.ZPosition = 10;
            navSprite.Color     = UIColor.FromHSB(0, 1, 0.0f);
            navSprite.Size      = new CGSize(100, 70);
            navSprite.Position  = new CGPoint((View.Frame.Width - (50)), (View.Frame.Height - (35)));
            AddChild(navSprite);

            // Container field to fill different background (Info Mode)
            container           = new SKSpriteNode("background_newcolor");
            container.Size      = new CGSize(Frame.Width, Frame.Height);
            container.Position  = new CGPoint(Frame.Width / 2, Frame.Height / 2);
            container.ZPosition = 0;
            container.Alpha     = 0f;
            AddChild(container);

            // Sprite Node with the info icon
            infoSprite           = new SKSpriteNode("info");
            infoSprite.Name      = "navSprite";
            infoSprite.Position  = new CGPoint(Frame.Width - 40, Frame.Height - 40);
            infoSprite.ZPosition = 10;
            infoSprite.XScale    = 0.6f;
            infoSprite.YScale    = 0.6f;
            infoSprite.Alpha     = 0.8f;
            infoSprite.Name      = "info";
            AddChild(infoSprite);

            // Start with the info text
            SetInfoText();

            // Generate Sparks
            GenerateSparks();
        }
 public void CreateVelocityField()
 {
     using (var node = SKFieldNode.CreateVelocityField(new Vector4(1, 2, 3, 4))) {
         Assert.AreEqual(0.00457763672f, node.MinimumRadius, "#minimum radius");
     }
 }