source: 2011/31/AlisaJ/Tasohyppelypeli1/Tasohyppelypeli1/Peli.cs @ 2556

Revision 2556, 4.9 KB checked in by alromaju, 8 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
9public class Peli : PhysicsGame
10{
11    Image LinnunKuva = LoadImage("pelin lintu1");
12
13    string seuraavaKentta = "kentta2.txt";
14
15    const double nopeus = 300;
16    const int RUUDUN_KOKO = 10;
17
18
19
20    PhysicsObject Lintu;
21
22
23
24    SoundEffect maaliAani = LoadSoundEffect("maali");
25
26
27    public override void Begin()
28    {
29
30
31        MessageDisplay.Add("Moi! Paina A aloittaaksesi");
32        MessageDisplay.TextColor = Color.White;
33        //:MessageDisplay.
34 
35
36
37
38        Keyboard.Listen(Key.A, ButtonState.Pressed, aloitapeli, null);
39
40    }
41
42    void luoKentta(string kenttaTiedostonNimi)
43    {
44        ClearAll();
45        TileMap kentta = TileMap.FromFile(kenttaTiedostonNimi);
46        kentta.SetTileMethod('#', lisaaTaso);
47        kentta.SetTileMethod('L', lisaalintu);
48        kentta.Execute(10, 15);
49       
50        Level.Background.Color = Color.SkyBlue;
51        pallo();
52        LuoAikaLaskuri();
53        lisaaNappaimet();
54        LuoLaskuri();
55        Camera.ZoomToLevel();
56        Level.CreateBorders();
57
58    }
59
60    void lisaaTaso(Vector paikka, double leveys, double korkeus)
61    {
62        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
63        taso.Position = paikka;
64        taso.Color = Color.Gray;
65        taso.Restitution = 1.1;
66        Add(taso);
67    }
68
69
70
71    void lisaalintu(Vector paikka, double leveys, double korkeus)
72    {
73        Lintu = new PhysicsObject(20, 20, Shape.Circle, CollisionShapeQuality.Best);
74        Lintu.Position = paikka;
75        Lintu.Mass = 4.0;
76        Lintu.Image = LinnunKuva;
77        AddCollisionHandler(Lintu, kasitteleLinnunTormays);
78        Add(Lintu);
79    }
80
81    void lisaaNappaimet()
82    {
83        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
84        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
85
86        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", Lintu, new Vector(-450, 0));
87        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", Lintu, new Vector(450, 0));
88        Keyboard.Listen(Key.Down, ButtonState.Down, liikuta, "Liikkuu ylos", Lintu, new Vector(0, -450));
89        Keyboard.Listen(Key.Up, ButtonState.Down, liikuta, "Liikkuu alas", Lintu, new Vector(0, 450));
90
91
92
93
94
95    }
96
97    void kasitteleLinnunTormays(PhysicsObject hahmo, PhysicsObject kohde)
98    {
99        if (kohde.Tag.ToString() == "pallo")
100        {
101            MessageDisplay.Add("söit hyttysen!");
102            kohde.Destroy();
103            pisteLaskuri.Value++;
104        }
105
106    }
107
108
109
110
111    void liikuta(PhysicsObject Lintu, Vector nopeus)
112    {
113        Lintu.Move(nopeus);
114    }
115
116
117    void pallo()
118    {
119        int i = 0;
120        Gravity = new Vector(0, -500);
121        while (i < 250)
122        {
123
124            i++;
125            PhysicsObject pallo = new PhysicsObject(5, 5);
126            pallo.Color = RandomGen.NextColor();
127            pallo.Shape = Shape.Circle;
128            pallo.X = RandomGen.NextDouble(Level.Left, Level.Right);
129            pallo.Y = RandomGen.NextDouble(Level.Bottom, Level.Top);
130           
131            pallo.Restitution = 1.1;
132            pallo.Tag = "pallo";
133
134
135            Add(pallo);
136        }
137
138    }
139
140
141    DoubleMeter alaspainLaskuri;
142    Timer aikaLaskuri;
143
144    void LuoAikaLaskuri()
145    {
146        alaspainLaskuri = new DoubleMeter(60);
147
148        aikaLaskuri = new Timer();
149        aikaLaskuri.Interval = 0.1;
150        aikaLaskuri.Timeout += LaskeAlaspain;
151        aikaLaskuri.Start();
152
153        Label aikaNaytto = new Label();
154        aikaNaytto.TextColor = Color.Black;
155        aikaNaytto.DecimalPlaces = 1;
156        aikaNaytto.BindTo(alaspainLaskuri);
157        Add(aikaNaytto);
158    }
159
160    void LaskeAlaspain()
161    {
162        alaspainLaskuri.Value -= 0.1;
163
164        if (alaspainLaskuri.Value <= 0)
165        {
166            MessageDisplay.Add("Aika loppui...");
167            aikaLaskuri.Stop();
168
169            Exit();
170        }
171
172
173
174    }
175
176
177    void KasittelePallonTormays(PhysicsObject lintu, PhysicsObject pallo)
178    {
179       
180    }
181
182     void laskuriYlarajassa( int arvo)
183     {
184         luoKentta(seuraavaKentta);
185         seuraavaKentta = "kentta3.txt";
186     }
187
188
189        IntMeter pisteLaskuri;
190
191       void LuoLaskuri()
192    {
193        pisteLaskuri = new IntMeter(0);
194
195        Label pisteNaytto = new Label();
196        pisteNaytto.X = Screen.Left + 100;
197        pisteNaytto.Y = Screen.Top - 100;
198        pisteNaytto.TextColor = Color.Pink;
199
200        pisteNaytto.BindTo(pisteLaskuri);
201        Add(pisteNaytto);
202
203        pisteLaskuri.MaxValue = 100;
204       pisteLaskuri.UpperLimit += laskuriYlarajassa;
205
206
207
208   
209       
210
211    }
212
213
214       void aloitapeli ()
215       { luoKentta("kentta1.txt");
216       }
217
218
219
220
221       
222
223}
Note: See TracBrowser for help on using the repository browser.