source: 2016/27/PaavoH/Adventure/Adventure/Adventure/Adventure.cs @ 10337

Revision 8025, 8.3 KB checked in by sieerinn, 5 years ago (diff)

Peli valimis!!!!!!!!!!!!!!!

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Adventure : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14    IntMeter pisteLaskuri;
15    int kenttanumero = 1;
16    PlatformCharacter pelaaja1;
17
18    DoubleMeter elamaLaskuri;
19
20    Image pelaajanKuva = LoadImage("pelaaja");
21    Image kolikkoKuva = LoadImage("kolikko");
22    Image laavaKuva = LoadImage("laava");
23    Image jaaKuva = LoadImage("jaa");
24    Image autoKuva = LoadImage("car");
25    Image maaKuva = LoadImage("maa");
26    Image setelikuva = LoadImage("seteli");
27    Image vuorenkuva = LoadImage("vuori");
28    SoundEffect maaliAani = LoadSoundEffect("voitto");
29    Image maalinkuva = LoadImage("maali");
30
31    public override void Begin()
32    {
33        AlkuValikko();
34       
35    }
36
37    void LuoKentta()
38    {
39       
40        TileMap kentta = TileMap.FromLevelAsset("kentta"+ kenttanumero);
41        kentta.SetTileMethod('#', LisaaTaso);
42        kentta.SetTileMethod('*', LisaaKolikko);
43        kentta.SetTileMethod('N', LisaaPelaaja);
44        kentta.SetTileMethod('L', LisaaLaava);
45        kentta.SetTileMethod('J', LisaaJaa);
46        kentta.SetTileMethod('M', LisaaMaali);
47        kentta.SetTileMethod('A', LisaaAuto);
48        kentta.SetTileMethod('S', LisaaSeteli);
49        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
50        Level.CreateBorders();
51        Level.Background.Color = Color.SkyBlue;
52    }
53
54    void LisaaTaso(Vector paikka, double leveys, double korkeus)
55    {
56        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
57        taso.Position = paikka;
58        taso.Image = maaKuva;
59        Add(taso);
60    }
61
62    void LisaaKolikko(Vector paikka, double leveys, double korkeus)
63    {
64        PhysicsObject kolikko = PhysicsObject.CreateStaticObject(leveys, korkeus);
65        kolikko.IgnoresCollisionResponse = true;
66        kolikko.Position = paikka;
67        kolikko.Image = kolikkoKuva;
68        kolikko.Tag = "kolikko";
69        Add(kolikko);
70    }
71
72    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
73    {
74        pelaaja1 = new PlatformCharacter(leveys / 2, korkeus);
75        pelaaja1.Position = paikka;
76        pelaaja1.Mass = 4.0;
77        pelaaja1.Image = pelaajanKuva;
78        AddCollisionHandler(pelaaja1, "kolikko", TormaaKolikkoon);
79        AddCollisionHandler(pelaaja1, "seteli", TormaaSeteliin);
80        AddCollisionHandler(pelaaja1, "auto", autoontormataan);
81        AddCollisionHandler(pelaaja1, "laava", laavaantormataan);
82        AddCollisionHandler(pelaaja1, "maali", maaliintormataan);
83        Add(pelaaja1);
84    }
85    void LisaaLaava(Vector paikka, double leveys, double korkeus)
86    {
87        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
88        taso.Position = paikka;
89        taso.Image = laavaKuva;
90        taso.Tag = "laava";
91        Add(taso);
92    }
93
94    void LisaaJaa(Vector paikka, double leveys, double korkeus)
95    {
96        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
97        taso.Position = paikka;
98        taso.Image = jaaKuva;
99        taso.KineticFriction = -300;
100        Add(taso);
101    }
102    void LisaaMaali(Vector paikka, double leveys, double korkeus)
103    {
104        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
105        maali.IgnoresCollisionResponse = true;
106        maali.Position = paikka;
107        maali.Image = maalinkuva;
108        maali.Tag = "maali";
109        Add(maali);
110    }
111    void LisaaAuto(Vector paikka, double leveys, double korkeus)
112    {
113        PhysicsObject auto = new PhysicsObject(leveys + 10, korkeus);
114        //auto.IgnoresCollisionResponse = true;
115        auto.Position = paikka;
116        auto.Image = autoKuva;
117        auto.Tag = "auto";
118        Add(auto);
119    }
120    void LisaaSeteli(Vector paikka, double leveys, double korkeus)
121    {
122        PhysicsObject seteli = PhysicsObject.CreateStaticObject(leveys, korkeus);
123        seteli.IgnoresCollisionResponse = true;
124        seteli.Position = paikka;
125        seteli.Image = setelikuva;
126        seteli.Tag = "seteli";
127        Add(seteli);
128    }
129    void LisaaNappaimet()
130    {
131
132        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
133        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
134
135        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
136        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
137        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
138
139        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Poistu pelistä");
140
141        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
142        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
143        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
144
145        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
146    }
147
148    void Liikuta(PlatformCharacter hahmo, double nopeus)
149    {
150        hahmo.Walk(nopeus);
151    }
152
153    void Hyppaa(PlatformCharacter hahmo, double nopeus)
154    {
155        hahmo.Jump(nopeus);
156    }
157
158    void TormaaKolikkoon(PhysicsObject hahmo, PhysicsObject kolikko)
159    {
160        maaliAani.Play();
161        pisteLaskuri.Value += 1;
162        kolikko.Destroy();
163    }
164    void autoontormataan(PhysicsObject hahmo, PhysicsObject auto)
165    {
166        // auto.Move(new Vector(20.0, 0));
167    }
168
169    void TormaaSeteliin(PhysicsObject hahmo, PhysicsObject seteli)
170    {
171        maaliAani.Play();
172        pisteLaskuri.Value += 10;
173        seteli.Destroy();
174    }
175
176    void maaliintormataan(PhysicsObject hahmo, PhysicsObject maali)
177    {       
178        maali.Destroy();
179        kenttanumero += 1;
180        AloitaPeli();
181    }
182    void LuoPistelaskuri()
183    {
184        pisteLaskuri = new IntMeter(0);
185
186        Label pisteNaytto = new Label();
187        pisteNaytto.X = Screen.Left + 100;
188        pisteNaytto.Y = Screen.Top - 100;
189        pisteNaytto.TextColor = Color.Black;
190       
191
192        pisteNaytto.BindTo(pisteLaskuri);
193        Add(pisteNaytto);
194
195        IntMeter laskuri = new IntMeter(0, 0, 999);
196        pisteNaytto.Title = "Raha";
197    }
198    void LuoElamaLaskuri()
199    {
200        elamaLaskuri = new DoubleMeter(10,0,10);
201        elamaLaskuri.LowerLimit += ElamaLoppui;
202
203        ProgressBar elamaPalkki = new ProgressBar(150, 20);
204        elamaPalkki.X = Screen.Left + 150;
205        elamaPalkki.Y = Screen.Top - 20;
206        elamaPalkki.BindTo(elamaLaskuri);
207        Add(elamaPalkki);
208    }
209
210    void ElamaLoppui()
211    {
212        MessageDisplay.Add("HÄVISIT");
213        ControllerOne.Vibrate(1.0, 1.0, 1.0, 1.0, 3.5);
214        pelaaja1.Destroy();
215    }
216    void AlkuValikko()
217    {
218        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko","Aloita peli", "Lopeta");
219        Add(alkuValikko);
220        alkuValikko.AddItemHandler(0, AloitaPeli);
221        alkuValikko.AddItemHandler(1, Exit);
222        //alkuValikko.Color = Color.White;
223        GameObject tausta = new GameObject(Window.Width, Window.Height);
224        //Add(tausta,-3);
225        Add(tausta);
226        tausta.Image = vuorenkuva;
227    }
228    void AloitaPeli()
229    {
230        //kenttanumero.Value = 1;
231        ClearAll();
232        Gravity = new Vector(0, -1000);
233
234        if (kenttanumero > 6)
235        {
236            kenttanumero = 1;
237            ClearAll();
238            Camera.ZoomFactor = 1.0;
239            Camera.Position = Vector.Zero;
240            Camera.ZoomToLevel();
241            AlkuValikko();
242            return;
243        }
244        LuoKentta();
245        LisaaNappaimet();
246        LuoPistelaskuri();
247        LuoElamaLaskuri();
248
249        Camera.Follow(pelaaja1);
250        Camera.ZoomFactor = 1.2;
251        Camera.StayInLevel = true;
252    }
253    void laavaantormataan(PhysicsObject pelaaja, PhysicsObject laava)
254    {
255        elamaLaskuri.Value = elamaLaskuri.Value - 3;
256       
257    }
258}
Note: See TracBrowser for help on using the repository browser.