source: 2012/26/FanniO/Sailtilyousink/Sailtilyousink/Sailtilyousink/Sailtilyousink.cs @ 3285

Revision 3285, 9.4 KB checked in by faamojal, 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 Sailtilyousink : PhysicsGame
10{
11    Image veneenKuva = LoadImage("vene");
12    Image kivenKuva = LoadImage("kivi");
13    Image kuusenKuva = LoadImage("kuusi");
14    Image renkaankuva = LoadImage("rengas");
15    Image verkonKuva = LoadImage("verkko");
16    Image arkunKuva = LoadImage("arkku");
17
18    Vector nopeusoikea = new Vector(400, 0);
19    Vector nopeusvasen = new Vector(-400, 0);
20    Vector nopeusylos = new Vector(0, 400);
21    Vector nopeusalas = new Vector(0, -400);
22    Vector nopeussuora=new Vector(0,0);
23   
24
25    PhysicsObject vene;
26    DoubleMeter elamamittari;
27    PhysicsObject rengas;
28    PhysicsObject kivi;
29    PhysicsObject verkko;
30    PhysicsObject arkku;
31    IntMeter pisteet;
32    IntMeter merimailit;
33
34   
35   
36
37
38    public override void Begin()
39    {
40
41        IsMouseVisible = true;
42        MultiSelectWindow alkuvalikko = new MultiSelectWindow("Sail 'Til You Sink", "Aloita peli", "Parhaat pisteet", "Lopeta");
43        Add(alkuvalikko);
44        alkuvalikko.ItemSelected += Painettiinvalikkonappia;
45        alkuvalikko.Color = Color.LightBlue;
46
47     
48
49        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
50       
51    }
52    void Painettiinvalikkonappia(int valinta)
53    {
54        switch (valinta)
55        {
56            case 0: 
57        purjeVene(0,0);
58        lisaakivia();
59        ajastin();
60        lisaarengas();
61        LuoKentta();
62        lisaaPlaskin();
63        lisaaMlaskin();
64        asetaohjaimet();
65        lisaaEmittari();
66        veneosuu(vene,kivi);
67        pistelisaa(vene, rengas);
68        mailittaynna();
69        suoristavene();
70                break;
71            case 1:
72                break;
73            case 2:
74                Exit();
75                break;
76            default:
77                break;
78        }
79    }
80    PhysicsObject purjeVene(double x,double y)
81    {
82        vene =new PhysicsObject(veneenKuva);
83        vene.Width = 40;
84        vene.Height = 90;
85        vene.Velocity = new Vector(0,0);
86        Add(vene);
87        AddCollisionHandler(vene, "hyvis", pistelisaa);
88        AddCollisionHandler(vene, "este", veneosuu);
89        AddCollisionHandler(vene, "Aarkku", pistelisaa);
90        return (vene);
91
92    }
93    void LuoKentta()
94    {
95        Surface vasenreuna = Surface.CreateLeft(Level,300,100,20);
96        vasenreuna.Color = Color.LightGreen;
97        Add(vasenreuna);
98
99        Surface oikeareuna = Surface.CreateRight(Level, 300, 100, 20);
100        oikeareuna.Color = Color.LightGreen;
101        Add(oikeareuna);
102
103        Level.BackgroundColor = Color.Aqua;
104
105    }
106    void lisaakivia()
107    {
108        kivi = PhysicsObject.CreateStaticObject(kivenKuva);
109        kivi.Y =500;
110        kivi.X=RandomGen.NextDouble(Level.Left, Level.Right);
111        kivi.Velocity = new Vector(0, -100);
112        kivi.Tag = "este";
113        Add(kivi);
114    }
115    void ajastin()
116    {
117        Timer ajastin = new Timer();
118        ajastin.Interval = 2;
119        ajastin.Timeout += lisaakivia;
120        ajastin.Start();
121        Timer ajastin2 = new Timer();
122        ajastin2.Interval = 6;
123        ajastin2.Timeout += lisaarengas;
124        ajastin2.Start();
125        Timer ajastin3 = new Timer();
126        ajastin3.Interval = 4;
127        ajastin3.Timeout += lisaamaili;
128        ajastin3.Start();
129        Timer ajastin4 = new Timer();
130        ajastin4.Interval = 5;
131        ajastin4.Timeout += lisaaverkko;
132        ajastin4.Start();
133        Timer ajastin5 = new Timer();
134        ajastin5.Interval = 10;
135        ajastin5.Timeout += lisaaarkku;
136        ajastin5.Start();
137       
138       
139    }
140    void lisaarengas()
141    {
142        rengas = PhysicsObject.CreateStaticObject(renkaankuva);
143        rengas.Y = 500;
144        rengas.X = RandomGen.NextDouble(Level.Left, Level.Right);
145        rengas.Velocity = new Vector(0, -100);
146        rengas.Tag = "hyvis";
147        Add(rengas);
148
149    }
150    void lisaaverkko()
151    {
152        verkko = PhysicsObject.CreateStaticObject(verkonKuva);
153        verkko.Y = 500;
154        verkko.X = RandomGen.NextDouble(Level.Left, Level.Right);
155        verkko.Velocity = new Vector(0, -100);
156        verkko.Tag = "este";
157        Add(verkko);
158    }
159    void lisaaarkku()
160    {
161        arkku = PhysicsObject.CreateStaticObject(arkunKuva);
162        arkku.Y = 500;
163        arkku.X = RandomGen.NextDouble(Level.Left, Level.Right);
164        arkku.Velocity = new Vector(0, -100);
165        arkku.Tag = "Aarkku";
166        Add(arkku);
167    }
168    void pistelisaa(PhysicsObject vene, PhysicsObject rengas)
169    {
170        pisteet.Value+=10;
171        rengas.Destroy();
172         
173    }
174    void pistelisaaA(PhysicsObject vene, PhysicsObject arkku)
175    {
176        pisteet.Value += 30;
177        arkku.Destroy();
178    }
179    void lisaaPlaskin()
180    {
181       
182        pisteet = new IntMeter(0);
183        Label pistenaytto = new Label();
184        pistenaytto.X = 400;
185        pistenaytto.Y = -200;
186        pistenaytto.TextColor = Color.Blue;
187        pistenaytto.Color = Color.Aqua;
188        pistenaytto.Title = "Pisteet";
189
190        pistenaytto.BindTo(pisteet);
191        Add(pistenaytto);
192       
193
194       
195
196
197    }
198    void lisaaMlaskin()
199    {
200        merimailit = new IntMeter(0);
201        merimailit.MaxValue = 100;
202        merimailit.UpperLimit += mailittaynna;
203        Label mailinaytto = new Label();
204        mailinaytto.X = 400;
205        mailinaytto.Y = -250;
206        mailinaytto.TextColor = Color.DarkBlue;
207        mailinaytto.Color = Color.Aqua;
208        mailinaytto.Title = "NM";
209
210
211        mailinaytto.BindTo(merimailit);
212        Add(mailinaytto);
213       
214       
215       
216       
217
218    }
219    void lisaaEmittari()
220    {
221       
222        elamamittari = new DoubleMeter(10);
223        elamamittari.MaxValue = 10;
224        ProgressBar elamapalkki = new ProgressBar(150, 15);
225        elamapalkki.BindTo(elamamittari);
226        elamapalkki.BarColor=Color.Green;
227        elamapalkki.BorderColor = Color.Red;
228        elamapalkki.Color = Color.Red;
229        elamapalkki.X =Screen.Right -150;
230        elamapalkki.Y =Screen.Bottom+15;
231        Add(elamapalkki);
232        elamamittari.LowerLimit += elamaloppui;
233       
234
235
236    }
237    void asetaohjaimet()
238    {
239        Keyboard.Listen(Key.Right, ButtonState.Down, asetanopeus, "pelaaja, liikuta venettä oikealle", vene, nopeusoikea);
240        Keyboard.Listen(Key.Right, ButtonState.Released, asetanopeus, null, vene, Vector.Zero);
241        Keyboard.Listen(Key.Left, ButtonState.Down, asetanopeus, "pelaaja, liikuta venettä oikealle", vene, nopeusvasen);
242        Keyboard.Listen(Key.Left, ButtonState.Released, asetanopeus, null, vene, Vector.Zero);
243        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
244        Keyboard.Listen(Key.Up, ButtonState.Down, asetanopeus, "pelaaja, liikuta venettä ylös", vene, nopeusylos);
245        Keyboard.Listen(Key.Up, ButtonState.Released, asetanopeus, null, vene, Vector.Zero);
246        Keyboard.Listen(Key.Down, ButtonState.Down, asetanopeus, "pelaaja, liikuta venettä alas", vene, nopeusalas);
247        Keyboard.Listen(Key.Down, ButtonState.Released, asetanopeus, null, vene, Vector.Zero);
248        Keyboard.Listen(Key.A, ButtonState.Pressed, suovene, "pelaaja, suorista vene", vene);
249       
250    }
251    void suovene(PhysicsObject vene)
252    {
253        vene.Angle = Angle.Zero;
254        vene.AngularVelocity = 0;
255    }
256    void asetanopeus(PhysicsObject vene,Vector nopeus)
257    {
258        vene.Velocity = nopeus;
259
260
261    }
262    void elamaloppui()
263    {
264        MessageDisplay.Add("Veneesi upposi!");
265        if(elamamittari.Value==0) 
266        {
267            ClearAll();
268            naytavalikko ();
269        }
270       
271
272    }
273    void veneosuu(PhysicsObject vene, PhysicsObject kivi)
274    {
275        elamamittari.Value-=1;
276
277    }
278    void lisaamaili()
279    {
280        merimailit.Value += 1;
281    }
282    void mailittaynna()
283    {
284        MessageDisplay.Add("Onnittelut! Purjehdit regatan loppuun!");
285       
286
287    }
288    void naytavalikko()
289    {
290        MultiSelectWindow loppuvalikko = new MultiSelectWindow("Sail 'Til You Sink", "Aloita peli", "Parhaat pisteet", "Lopeta peli","Loppupisteet");
291        Add(loppuvalikko);
292        loppuvalikko.ItemSelected += painettiinnuppia;
293        loppuvalikko.Color = Color.LightBlue;
294
295
296    }
297    void painettiinnuppia(int valinta)
298    {
299        switch (valinta)
300        {
301            case 0:
302                purjeVene(0, 0);
303                lisaakivia();
304                ajastin();
305                lisaarengas();
306                LuoKentta();
307                lisaaPlaskin();
308                lisaaMlaskin();
309                asetaohjaimet();
310                lisaaEmittari();
311                veneosuu(vene, kivi);
312                pistelisaa(vene, rengas);
313                mailittaynna();
314                suoristavene();
315                break;
316            case 1:
317                break;
318            case 2:
319                Exit();
320                break;
321            case 3:
322                Label mailit = new Label();
323                mailit.X = 0;
324                mailit.Y = 300;
325                mailit.Text = "Merimalit yhteensä";
326                Add(mailit);
327                break;
328            default:
329                break;
330        }
331
332    }
333    void suoristavene()
334    {
335    }
336}
Note: See TracBrowser for help on using the repository browser.