protected override void CreateSceneContents()
        {
            base.CreateSceneContents();

            // no point in recomputing constant values each time
            var half_range = range / 2.0f;

            basex = Scene.Frame.GetMidX() - half_range;
            basey = Scene.Frame.GetMidY() - half_range;

            Scene.AddDescription("These textured sprite nodes are combined using an additive blend",
                                 new PointF(Scene.Frame.GetMidX(), 100));

            Scene.RunAction(SKAction.RepeatActionForever(SKAction.Sequence(
                                                             SKAction.RunBlock(AddLight),
                                                             SKAction.WaitForDuration(0.5f, 0.1f)
                                                             )));
        }
        public GameOverScene(SizeF size, int score) : base(size)
        {
            BackgroundColor = new UIColor(0.15f, 0.15f, 0.3f, 1.0f);

            SKLabelNode label = SKLabelNode.FromFont("Chalkduster");

            label.Text      = "Your final score is: " + score + " Points";
            label.FontSize  = 30f;
            label.FontColor = UIColor.Black;
            label.Position  = new PointF(Size.Width / 2, Size.Height / 2);
            AddChild(label);

            RunAction(SKAction.Sequence(new [] {
                SKAction.WaitForDuration(3),
                SKAction.RunBlock(() => {
                    SKTransition reveal = SKTransition.FlipHorizontalWithDuration(0.5);
                    var scene           = new MyScene(size);

                    View.PresentScene(scene, reveal);
                }),
            }));
        }