private void OnPaint(UIElement element, SKCanvas canvas) { Timer.Update(); var deltaTime = HipsterEngine.DeltaTime.GetDeltaTime(); mControl.Update(); mControl.Draw(); aControl.Draw(); HipsterEngine.Surface.Canvas.Save(); HipsterEngine.Surface.Canvas.Translate(HipsterEngine.Surface.Canvas.Camera.X, HipsterEngine.Surface.Canvas.Camera.Y); HipsterEngine.Surface.Canvas.Scale(HipsterEngine.Surface.Canvas.Camera.ScaleX, HipsterEngine.Surface.Canvas.Camera.ScaleY); Earth.Step(); Earth.Draw(); Trees.ForEach(t => { t.Step(); t.Draw(); }); // Robots.ForEach(r => // { // r.Update(1, 1); // r.Draw(HipsterEngine.Surface.Canvas); // }); HipsterEngine.Physics.Step(1.0f, 20); HipsterEngine.Particles.Draw(HipsterEngine.Surface.Canvas.GetSkiaCanvas()); HipsterEngine.Surface.Canvas.Restore(); }
private void OnPaint(UIElement element, SKCanvas canvas) { var p = new SKPaint { Style = SKPaintStyle.Stroke, IsAntialias = true, PathEffect = SKPathEffect.CreateDash(new[] { 10.0f, 10.0f }, 10), Color = new SKColor(210, 170, 0, 100) }; var pp = new SKPaint { Style = SKPaintStyle.Fill, IsAntialias = true, Color = new SKColor(50, 50, 50) }; float borderSize = 40; canvas.DrawRect(borderSize, borderSize, Width - borderSize * 2, Height - borderSize * 2, p); var w = Width / 2; var h = Height / 2; var x = Width / 2 - w / 2; var y = Height / 2 - h / 2; canvas.DrawCircle(Width - 120, Y + 40, 36, p); canvas.DrawCircle(Width - 120, Y + 40, 36, pp); canvas.DrawText($"120", Width - 121, Y + 48, new SKPaint { TextSize = 25, IsAntialias = true, TextAlign = SKTextAlign.Center, Color = new SKColor(100, 100, 100) }); canvas.DrawRect(x, y, w, h, new SKPaint { Style = SKPaintStyle.Fill, IsAntialias = true, Color = new SKColor(40, 40, 40) }); canvas.DrawRect(x, y, w, h, p); canvas.DrawLine(x + w / 2, borderSize, x + w / 2, y, p); canvas.DrawLine(x + w / 2, Height - borderSize, x + w / 2, Height - y, p); Earth.Step(); Earth.Draw(); HipsterEngine.Physics.Step(1, 20); HipsterEngine.Particles.Draw(HipsterEngine.Surface.Canvas.GetSkiaCanvas()); _listBoxs.ForEach(l => { l.Update(); l.Draw(); }); Robots.ForEach(r => { r.Update(1, 1); r.Draw(HipsterEngine.Surface.Canvas); }); }