source: 2015/30/SonjaH/Demo8/Sarkyva/Sarkyva/Sarkyva.cs @ 7085

Revision 7085, 1.8 KB checked in by soonhuot, 4 years ago (diff)

Uusi versio apinapelistä.

Line 
1using System;
2using Jypeli;
3
4public class Sarkyva : PhysicsGame
5{
6    const double PIENIN_SADE = 5;
7    /// <summary>
8    /// Luodaan palloja rekursiivisesti haluttuun muodostelmaan.
9    /// </summary>
10    public override void Begin()
11    {
12        double korkeus = 300;
13        double y = (-1) * korkeus / 2;
14        Level.Background.Color = Color.White;
15        Pallo(this, -korkeus, korkeus, 100, 22);
16        Camera.Zoom(1);
17    }
18
19    /// <summary>
20    /// Tehdään pallo, ja sen yläpuolelle kaksi muuta palloa
21    /// rekursiivisesti.
22    /// </summary>
23    /// <param name="peli">peli johon pallo lisätään</param>
24    /// <param name="x">Pallon kp x-koordinaatti</param>
25    /// <param name="y">Pallon kp y-koordinaatti</param>
26    /// <param name="sade">Pallon sade</param>
27    /// <param name="suunta">Suunta radiaaneina</param>
28    public static void Pallo(Game peli, double x, double y,
29                             double sade, double suunta)
30    {
31        GameObject pallo = new PhysicsObject(2 * 100.0, 2 * 100.0, Shape.Circle);
32        pallo.Color = Color.Black;
33        pallo.X = x;
34        pallo.Y = y + sade;   // pallo pisteeseen (x, y)
35        pallo.Angle = Angle.FromDegrees(180);
36        peli.Add(pallo);
37
38        if (sade < PIENIN_SADE) return;  // jos pallon sade < PIENIN_SADE lopeta
39
40        // määrittele uusi säde itse ...
41        double r = sade * 2;
42        // määrittele suunnat itse ...
43        double vSuunta = suunta + 20;
44        double oSuunta = suunta - 20;
45
46        Pallo(peli, x + Math.Cos(vSuunta) * (sade + r),
47                    y + Math.Sin(vSuunta) * (sade + r),
48                    r, vSuunta);
49
50        Pallo(peli, x + Math.Cos(oSuunta) * (sade + r),
51                    y + Math.Sin(oSuunta) * (sade + r),
52                    r, oSuunta);
53    }
54}
Note: See TracBrowser for help on using the repository browser.