source: 2013/27/AkseliJ/Levypallo/Levypallo/Levypallo/Levypallo.cs @ 4371

Revision 4371, 4.1 KB checked in by akansaja, 7 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9
10namespace Levypallo
11{
12    public class Levypallo : PhysicsGame
13    {
14        //Muuttuvat muuttujat
15
16        private Label taulu;
17        public Label Pistetaulu { get { return taulu; } set { taulu = value; } }
18        internal PhysicsObject pallo;
19        int Score;
20        Kuutio[,] kentta;
21        internal static Levypallo instance;
22        internal PhysicsObject levy;
23
24        //Vakiot
25
26        internal static readonly Vector Tekstin_koko = new Vector(2, 2);
27        //UNUSED
28        public static readonly Image Pallon_kuva1 = LoadImage("1288501358361");
29
30        public override void Begin()
31        {
32            instance = this;
33
34            AsetaPerusKuuntelijat();
35            ValmisteleTausta();
36            LuoPallo();
37            LuoLevy();
38            LuoKentta();
39            AsetaFysiikkaKuuntelijat();
40            AsetaKontrolliKuuntelijat();
41            Gravity = new Vector(0, -150);
42
43
44        }
45
46        private void AsetaFysiikkaKuuntelijat()
47        {
48            AddCollisionHandler(pallo, "kuutio", KuutioonIskee);
49        }
50
51        private void KuutioonIskee(PhysicsObject bollen, PhysicsObject kuutio) {
52
53            if (kuutio is Kuutio) {
54
55                Kuutio cube = kuutio as Kuutio;
56
57               
58                Explosion KABOOOOOOOOOOM = new Explosion(100);
59               KABOOOOOOOOOOM.X = cube.X;
60                KABOOOOOOOOOOM.Y = cube.Y;
61                cube.Destroy();
62                Add(KABOOOOOOOOOOM);
63           
64            }
65           
66         
67        }
68
69        private void AsetaKontrolliKuuntelijat()
70        {
71            //TODO
72        }
73
74        private void LuoLevy()
75        {
76            levy = PhysicsObject.CreateStaticObject(250, 40);
77            levy.Color = Color.Yellow;
78            levy.X = 0;
79            levy.Y = -375;
80            levy.Tag = "levy";
81            Add(levy);
82           
83        }
84
85        private void LuoKentta()
86        {
87            //double KentanTilavuus = Level.Height - 100 / 100 * Level.Width / 100;
88            int korkeus = (((int)Level.Height - 200) / 100);
89            int leveys = ((int)Level.Width / 100);
90            kentta = new Kuutio[korkeus, leveys];
91            for (int i = 0; i < kentta.GetLength(0); i++)
92            {
93                for (int j = 0; j < kentta.GetLength(1); j++)
94                {
95
96                    int exists = RandomGen.NextInt(0, 3);
97                    if (exists != 0)
98                    {
99
100
101
102                        kentta[i, j] = new Kuutio(((int)Level.Bottom / 100) + i, (((int)Level.Left / 100) + j), RandomGen.NextColor());
103                    }
104                    else kentta[i, j] = null;
105
106
107                }
108            }
109
110        }
111
112        private void LuoPallo()
113        {
114            pallo = new PhysicsObject(50, 50);
115            pallo.Color = Color.YellowGreen;
116            pallo.Y = Level.Bottom + 70;
117            pallo.X= 0;
118            pallo.Shape = Shape.Circle;
119            pallo.Restitution = 1.0;
120            pallo.IgnoresGravity = true;
121            pallo.Tag = "pallo";
122            Add(pallo);
123        }
124
125        private void ValmisteleTausta()
126        {
127            Level.Background.CreateStars(200);
128            Level.CreateBorders(true);
129            Camera.ZoomToLevel();
130            taulu = new Label(400, 400);
131            taulu.Y = Screen.Top - 50;
132            //taulu.X:n paras arvo tähän asti on 325
133            taulu.X = Screen.Right - 325;
134            taulu.TextColor = Color.YellowGreen;
135            taulu.TextScale = Tekstin_koko;
136            taulu.Text = "LEVYPALLO SCORE: \n" + Score.ToString();
137            Add(taulu);
138
139        }
140
141        private void AsetaPerusKuuntelijat()
142        {
143
144            PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
145            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
146
147        }
148
149
150    }
151}
Note: See TracBrowser for help on using the repository browser.