source: 2013/26/SakuK/SPY/SPY/SPY/SPY.cs @ 4235

Revision 4235, 5.9 KB checked in by sakivima, 6 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 SPY : PhysicsGame
10{
11    DoubleMeter elamaLaskuri;
12    Image pelaajanKuva = LoadImage("hahmopaahenkilo");
13    Image tahtiKuva = LoadImage("tahti");
14    PlatformCharacter pelaaja;
15    AssaultRifle pelaajan1Ase;
16    int kenttaNro = 1;
17
18    public override void Begin()
19    {
20           
21       
22
23       
24       
25        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
26"Aloita peli", "Parhaat pisteet", "Lopeta");
27        Add(alkuValikko);
28        pelaajan1Ase = new AssaultRifle(30, 10);
29        alkuValikko.AddItemHandler(0, AloitaPeli);
30        alkuValikko.AddItemHandler(1, ParhaatPisteet);
31        alkuValikko.AddItemHandler(2, Exit);
32        alkuValikko.DefaultCancel = 3;
33        alkuValikko.DefaultCancel = -1;
34        alkuValikko.Color = Color.Red;
35
36     
37
38    }
39
40    void AloitaPeli()
41    {
42        Gravity = new Vector(0, -150);
43
44        Keyboard.Listen(Key.Left, ButtonState.Down,
45        LiikutaPelaajaa, null, -100.0);
46        Keyboard.Listen(Key.Right, ButtonState.Down,
47          LiikutaPelaajaa, null, 100.0);
48        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Hyppää", 500.0);
49        ControllerOne.Listen(Button.X, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
50        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1,
51        LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.");
52        Keyboard.Listen(Key.Space, ButtonState.Released, Hyppaa, "Hyppää", 150.0);
53        //Keyboard.Listen(Key.Up, ButtonState.Down,
54        //  LiikutaPelaajaa, null, new Vector(0, 100));
55        //Keyboard.Listen(Key.Down, ButtonState.Down,
56        //  LiikutaPelaajaa, null, new Vector(0, -100));
57        LuoElamaLaskuri();
58        Camera.Follow(pelaaja);
59        //Camera.ZoomFactor = 1.7;
60        Camera.ZoomToLevel();
61        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
62        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
63
64        ControllerOne.Vibrate(0.5, 0.5, 0.0, 0.0, 0.1);
65        LuoKentta("kenta"+kenttaNro);
66
67    }
68
69
70    void LuoKentta(string kentanNimi)
71    {
72        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kentanNimi);
73        ruudut.SetTileMethod("00FF00", LuoPelaaja);
74        ruudut.SetTileMethod(Color.Black, LuoTaso);
75        ruudut.SetTileMethod("FFE607", LuoTahti);
76        ruudut.SetTileMethod(Color.Red, LuoLaava);
77        ruudut.SetTileMethod("AAFF2B", LuoMaali);
78        ruudut.Execute(20, 20);
79
80    }
81
82    void LuoMaali(Vector paikka, double leveys, double korkeus)
83    {
84
85    }
86
87    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
88    {
89        pelaaja = new PlatformCharacter(leveys, korkeus);
90        pelaaja.Position = paikka;
91        pelaaja.Image = pelaajanKuva;
92        AddCollisionHandler(pelaaja, "tahti", TormaaTahteen);
93        AddCollisionHandler(pelaaja, "vihollinen", TormaaViholliseen);
94        AddCollisionHandler(pelaaja, "laava", TormaaLaavaan);
95        Add(pelaaja);
96
97    }
98
99    void TormaaLaavaan(PhysicsObject pelaaja, PhysicsObject laava)
100    {
101        pelaaja.Hit(new Vector(0, 75));
102        elamaLaskuri.Value -= 5;
103    }
104
105    void TormaaViholliseen(PhysicsObject pelaaja, PhysicsObject tahti)
106    {
107        elamaLaskuri.Value -= 4;
108    }
109
110
111    void TormaaTahteen(PhysicsObject pelaaja, PhysicsObject tahti)
112    {
113
114    }
115
116    void LuoTaso(Vector paikka, double leveys, double korkeus)
117    {
118        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
119        taso.Position = paikka;
120        taso.Color = Color.Gold;
121        //taso.Image = groundImage
122        taso.CollisionIgnoreGroup = 1;
123        Add(taso);
124    }
125
126    void LuoLaava(Vector paikka, double leveys, double korkeus)
127    {
128        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
129        taso.Position = paikka;
130        taso.Color = Color.Red;
131        taso.Tag = "laava";
132        //taso.Image = groundImage
133        taso.CollisionIgnoreGroup = 1;
134        Add(taso);
135
136
137
138    }
139
140    void LuoTahti(Vector paikka, double leveys, double korkeus)
141    {
142        PhysicsObject tahti = new PhysicsObject(leveys, korkeus);
143        //tahti.IgnoresCollisionResponse = true;
144        tahti.Position = paikka;
145        tahti.Image = tahtiKuva;
146        tahti.Tag = "kristali";
147        Add(tahti);
148    }
149    void LuoElamaLaskuri()
150    {
151        elamaLaskuri = new DoubleMeter(100, 0, 100);
152        elamaLaskuri.LowerLimit += ElamaLoppui;
153
154        ProgressBar elamaPalkki = new ProgressBar(150, 20);
155        elamaPalkki.X = Screen.Left + 150;
156        elamaPalkki.Y = Screen.Top - 20;
157        elamaPalkki.BindTo(elamaLaskuri);
158        Add(elamaPalkki);
159        //elamaPalkki.Angle = Angle.;
160        elamaPalkki.Color = Color.Transparent;
161        elamaPalkki.BarColor = Color.Red;
162        elamaPalkki.BorderColor = Color.Black;
163    }
164    void ElamaLoppui()
165    {
166        MessageDisplay.Add("VOI VOI ALOTA ALUSTA =D.");
167        pelaaja.Destroy();
168    }
169    void LiikutaPelaajaa(double nopeus)
170    {
171        pelaaja.Walk(nopeus);
172    }
173
174    void Hyppaa(double nopeus)
175    {
176        pelaaja.Jump(nopeus);
177    }
178 
179    void ParhaatPisteet()
180    {
181    }
182    void LiikutaPelaajaa(Vector vektori, PhysicsObject pelaaja)
183    {
184        pelaaja.Move(vektori);
185    }
186
187    void LiikutaPelaajaa(AnalogState tatinTila)
188    {
189        Vector tatinAsento = tatinTila.StateVector;
190        pelaaja.Walk(tatinAsento.X*100);
191    }
192    void SeuraavaKentta()
193    {
194        ClearAll();
195
196        AloitaPeli();
197
198    }
199
200    void TormasiMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
201    {
202        //Kasvatetaan kenttänumeroa yhdellä ja siirrytään seuraavaan kenttään:
203        kenttaNro++;
204        SeuraavaKentta();
205    }
206}
Note: See TracBrowser for help on using the repository browser.