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"); } }
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"); } }