コード例 #1
0
        void AddCollisionWallAtWorldPoint(CGPoint worldPoint, float width, float height)
        {
            var rect = new CGRect(0, 0, width, height);

            var wallNode = SKNode.Create();

            wallNode.Position                     = new CGPoint(worldPoint.X + rect.Size.Width * 0.5f, worldPoint.Y - rect.Size.Height * 0.5f);
            wallNode.PhysicsBody                  = SKPhysicsBody.CreateRectangularBody(rect.Size);
            wallNode.PhysicsBody.Dynamic          = false;
            wallNode.PhysicsBody.CategoryBitMask  = (uint)ColliderType.Wall;
            wallNode.PhysicsBody.CollisionBitMask = 0;

            AddNode(wallNode, WorldLayer.Ground);
        }
コード例 #2
0
        public OverlayScene(CGSize size) : base(size)
        {
            AnchorPoint = new CGPoint(0.5f, 0.5f);
            ScaleMode   = SKSceneScaleMode.ResizeFill;

            float scale = UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad ? 1.5f : 1f;

            var myImage = SKSpriteNode.FromImageNamed(ResourceManager.GetResourcePath("speedGauge.png"));

            myImage.AnchorPoint = new CGPoint(0.5f, 0f);
            myImage.Position    = new CGPoint(size.Width * 0.33f, -size.Height * 0.5f);
            myImage.XScale      = 0.8f * scale;
            myImage.YScale      = 0.8f * scale;
            AddChild(myImage);

            var needleHandle = SKNode.Create();
            var needle       = SKSpriteNode.FromImageNamed(ResourceManager.GetResourcePath("needle.png"));

            needleHandle.Position = new CGPoint(0f, 16f);
            needle.AnchorPoint    = new CGPoint(0.5f, 0f);
            needle.XScale         = 0.7f;
            needle.YScale         = 0.7f;
            needle.ZRotation      = (float)Math.PI / 2f;
            needleHandle.AddChild(needle);
            myImage.AddChild(needleHandle);

            SpeedNeedle = needleHandle;

            var cameraImage = SKSpriteNode.FromImageNamed(ResourceManager.GetResourcePath("video_camera.png"));

            cameraImage.Position = new CGPoint(-size.Width * 0.4f, -size.Height * 0.4f);
            cameraImage.Name     = "camera";
            cameraImage.XScale   = 0.6f * scale;
            cameraImage.YScale   = 0.6f * scale;
            AddChild(cameraImage);
        }
コード例 #3
0
        public void Setup()
        {
            nfloat w = Bounds.Width;
            nfloat h = Bounds.Height;

            if (w < h)
            {
                nfloat wTmp = w;
                w = h;
                h = wTmp;
            }

            // Setup the game overlays using SpriteKit
            SKScene skScene = SKScene.FromSize(new CGSize(w, h));

            skScene.ScaleMode = SKSceneScaleMode.ResizeFill;

            overlayGroup = SKNode.Create();
            skScene.AddChild(overlayGroup);
            overlayGroup.Position = new CGPoint(0f, h);

            // The Max icon
            SKSpriteNode sprite = SKSpriteNode.FromImageNamed("Images/MaxIcon.png");

            sprite.Position = new CGPoint(50f, -50f);

            overlayGroup.AddChild(sprite);
            sprite.XScale = sprite.YScale = 0.5f;

            for (int i = 0; i < 3; i++)
            {
                flowers [i]          = SKSpriteNode.FromImageNamed("Images/FlowerEmpty.png");
                flowers [i].Position = new CGPoint(110f + i * 40f, -50f);
                flowers [i].XScale   = flowers [i].YScale = 0.25f;
                overlayGroup.AddChild(flowers[i]);
            }

            // The peal icon and count.
            sprite          = SKSpriteNode.FromImageNamed("Images/ItemsPearl.png");
            sprite.Position = new CGPoint(110f, -100f);
            sprite.XScale   = sprite.YScale = 0.5f;
            overlayGroup.AddChild(sprite);

            pearlLabel          = SKLabelNode.FromFont("Chalkduster");
            pearlLabel.Text     = "x0";
            pearlLabel.Position = new CGPoint(152f, -113f);
            overlayGroup.AddChild(pearlLabel);

            // The D-Pad
            sprite          = SKSpriteNode.FromImageNamed("Images/dpad.png");
            sprite.Position = new CGPoint(100f, 100f);
            sprite.XScale   = sprite.YScale = 0.5f;
            skScene.AddChild(sprite);
            padRect = new CGRect(
                (sprite.Position.Y - DPAD_RADIUS) / w,
                1f - (sprite.Position.Y + DPAD_RADIUS) / h,
                2f * DPAD_RADIUS / w,
                2f * DPAD_RADIUS / h
                );

            // Assign the SpriteKit overlay to the SceneKit view.
            OverlayScene = skScene;

            // Setup the pinch gesture
            defaultFov = PointOfView.Camera.XFov;

            var pinch = new UIPinchGestureRecognizer {
                Delegate             = this,
                CancelsTouchesInView = false
            };

            pinch.AddTarget(() => PinchWithGestureRecognizer(pinch));

            AddGestureRecognizer(pinch);
        }