source: 2015/30/SonjaH/puu/puu/puu/peli.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 Peli : 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 = korkeus;
14        Level.Background.Color = Color.White;
15        Pallo(this, 20, 20, 100, 190);
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 * sade, 2 * sade, Shape.Circle);
32        pallo.Color = Color.Black;
33        pallo.X = x;
34        pallo.Y = y;   // pallo pisteeseen (x, y)
35        pallo.Angle = Angle.FromDegrees(Math.PI);
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 + Math.PI/4;
44        double oSuunta = suunta - Math.PI/4;
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.