source: esimerkit/2015k/live/live04/Lumiukko/Lumiukko/Lumiukko.cs @ 1392

Revision 1068, 2.8 KB checked in by anlakane, 2 years ago (diff)
Line 
1using System;
2using Jypeli;
3
4/// @author Antti-Jussi Lakanen
5/// @version 21.1.2015
6///
7/// <summary>
8/// Harjoitellaan aliohjelmia ja funktioita.
9/// </summary>
10public class Lumiukko : PhysicsGame
11{
12    /// <summary>
13    /// Piirretään ukot siten että Lumiukko-aliohjelmassa kutsutaan
14    /// TeePallo-funktiota.
15    /// </summary>
16    public override void Begin()
17    {
18        Level.Background.Color = Color.DarkBlue;
19        Camera.ZoomToLevel();
20
21        Gravity = new Vector(0, -1000);
22
23        Level.CreateBorders();
24
25        TeeLumiukko();
26        TeeLumiukko(-200.0, -150.0, 40.0, Color.Black); // ukko vasemmalle alas
27        TeeLumiukko(-50.0, -50.0, 40.0); 
28    }
29
30    /// <summary>
31    /// Tekee vakiokokoisen, pinkin lumiukon
32    /// origoon.
33    /// </summary>
34    public void TeeLumiukko()
35    {
36        /*
37        double x = 0;
38        double y = 0;
39        double r = 100;
40        Color vari = Color.HotPink;
41        TeeLumiukko(x, y, r, vari);
42         */
43        TeeLumiukko(0, 0, 100, Color.HanPurple);
44    }
45
46    /// <summary>
47    /// Tekee halutun kokoisen lumiukon,
48    /// vakiovärisen (punainen)
49    /// </summary>
50    /// <param name="x">Alimman pallon keskipisteen x-koordinaatti</param>
51    /// <param name="y">Alimman pallon keskipisteen y-koordinaatti</param>
52    /// <param name="r">Alimman pallon sade</param>
53    public void TeeLumiukko(double x, double y, double r)
54    {
55        TeeLumiukko(x, y, r, Color.Red);
56    }
57
58    /// <summary>
59    /// Aliohjelma piirtää näytölle yhden lumiukon.
60    /// </summary>
61    /// <param name="x">Alimman pallon keskipisteen x-koordinaatti</param>
62    /// <param name="y">Alimman pallon keskipisteen y-koordinaatti</param>
63    /// <param name="r">Alimman pallon sade</param>
64    /// <param name="vari">Kaikkien pallojen väri</param>
65    public void TeeLumiukko(double x, double y, double r, Color vari)
66    {
67        PhysicsObject p1 = TeePallo(x, y, r, vari);
68        PhysicsObject p2 = TeePallo(p1.X, p1.Top + r / 2, r / 2, vari);
69        PhysicsObject p3 = TeePallo(p2.X, p2.Top + r / 4, r / 4, vari);
70        PhysicsStructure pallot = new PhysicsStructure(p1, p2, p3);
71        pallot.Softness = 30;
72        Add(pallot);
73    }
74
75    /// <summary>
76    /// Tekee pallon ja lisää sen ruudulle.
77    /// </summary>
78    /// <param name="x">keskipisteen x-koordinaatti</param>
79    /// <param name="y">keskipisteen y-koordinaatti</param>
80    /// <param name="r">sade</param>
81    /// <param name="vari">väri</param>
82    /// <returns>Pallo</returns>
83    public PhysicsObject TeePallo(double x, double y, double r, Color vari)
84    {
85        PhysicsObject pallo = new PhysicsObject(2 * r, 2 * r, Shape.Circle);
86        pallo.Color = vari;
87        pallo.X = x;
88        pallo.Y = y;
89        Add(pallo);
90        return pallo;
91    }
92}
Note: See TracBrowser for help on using the repository browser.