source: 2018/26/OttoJ/SplitScreen/PokemonGo/PokemonGo.cs @ 9821

Revision 9821, 1.7 KB checked in by paritala, 12 months ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Widgets;
7
8public class PokemonGo : PhysicsGame
9{
10    public override void Begin()
11    {
12        Level.Background.Color = Color.White;
13
14    }
15
16    Vector paikka = Vector.Zero;
17    //protected override void Paint(Canvas canvas)
18    //{
19    //    Vector alkupaikka = new Vector(10, 10);
20    //    for (int i = 0; i < 100; i++)
21    //    {
22    //        Vector paikka = new Vector(Math.Sin(), Math.Cos)
23    //        canvas.DrawLine(paikka, )
24    //    }
25
26    //    base.Paint(canvas);
27    //}
28    double MAX_RAD = 200;
29    double r = 200;
30    Color c1 = Color.Red, c2 = Color.Yellow, c3 = Color.Green;
31
32    protected override void Paint(Canvas canvas)
33    {
34        DrawCircle(canvas, 205);
35        DrawCircle(canvas, r-- > 1 ? r : r = 200);
36
37        base.Paint(canvas);
38    }
39
40    void DrawCircle(Canvas canvas, double rad)
41    {
42        if (rad > 200) canvas.BrushColor = Color.Black;
43
44        else if (rad > MAX_RAD/4) canvas.BrushColor = Color.Lerp(c2, c3, Scale(r, 0, 200, 0, 1));
45        else if (rad < MAX_RAD/4) canvas.BrushColor = Color.Lerp(c1, c2, Scale(r, 0, 200, 0, 1));
46
47
48        for (int i = 0; i < 100; i++)
49        {
50            Vector p1 = Vector.FromLengthAndAngle(rad, Angle.FromRadians(Math.PI * 2 * i / 100.0));
51            Vector p2 = Vector.FromLengthAndAngle(rad, Angle.FromRadians(Math.PI * 2 * (i + 1) / 100.0));
52            canvas.DrawLine(p1, p2);
53        }
54    }
55
56    double Scale(double num, double oldMin, double oldMax, double newMin, double newMax) =>
57        newMin + (num / oldMax) * (newMax - newMin);
58}
Note: See TracBrowser for help on using the repository browser.