コード例 #1
0
        private void OnPaintSurface(object sender, SKPaintGLSurfaceEventArgs e)
        {
            game.Update();

            var canvas = e.Surface.Canvas;

            canvas.Clear(SKColors.Black);

            using var save = new SKAutoCanvasRestore(canvas, true);

            scale = Math.Min(
                (float)e.BackendRenderTarget.Width / baseSize.Width,
                (float)e.BackendRenderTarget.Height / baseSize.Height);

            var screenRect   = (SKRect)e.BackendRenderTarget.Rect;
            var centeredRect = screenRect.AspectFit(baseSize);

            offset = centeredRect.Location;

            canvas.Translate(offset);
            canvas.Scale(scale);

            canvas.ClipRect(SKRect.Create(baseSize));

            game.Draw(canvas);
        }
コード例 #2
0
ファイル: MainPage.xaml.cs プロジェクト: pav0n/FlappyBird
        private void OnPaintSurface(object sender, SKPaintGLSurfaceEventArgs e)
        {
            var oldTicks = milliseconds;
            var newTicks = Environment.TickCount;

            milliseconds = newTicks;

            game.Update(TimeSpan.FromMilliseconds(newTicks - oldTicks));

            var canvas = e.Surface.Canvas;

            using (new SKAutoCanvasRestore(canvas, true))
            {
                //canvas.Scale(
                //	e.BackendRenderTarget.Width / baseSize.Width,
                //	e.BackendRenderTarget.Height / baseSize.Height);

                game.Draw(canvas);
            }
        }