source: 2012/26/TimoL/Protect The Idiot/Protect The Idiot/Protect The Idiot/Protect_The_Idiot.cs @ 3403

Revision 3403, 7.1 KB checked in by tijamalu, 11 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
10
11
12
13
14
15class Vihu : PlatformCharacter
16{
17    public IntMeter elamaLaskuri = new IntMeter(5, 0, 5);
18    public int Elamat = 3;
19    public Vihu(double leveys, double korkeus)
20        : base(leveys, korkeus)
21    {
22        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
23    }
24}
25
26
27
28public class Protect_The_Idiot : PhysicsGame
29{
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47    DoubleMeter Elämämittari;
48
49    const double nopeus = 250;
50    const double hyppyNopeus = 1000;
51    const int RUUDUN_KOKO = 40;
52
53    PlatformCharacter Player1;
54
55    //PlatformCharacter Vihu1;
56    Image pelaajanKuva = LoadImage("hahmo");
57    Image VihunKuva = LoadImage("boss");
58
59
60    public override void Begin()
61    {
62
63        alkuValikko();
64
65    }
66
67    void aloitaPeli()
68    {
69        ClearAll();
70
71        Gravity = new Vector(0, -2500);
72
73        LuoKentta();
74        LisaaNappaimet();
75
76        Camera.Follow(Player1);
77        Camera.ZoomFactor = 1.2;
78        Camera.StayInLevel = true;
79        Elämämittari = new DoubleMeter(10);
80        Elämämittari.MaxValue = 10;
81        Elämämittari.LowerLimit += VoimaLoppui;
82        ProgressBar ElämäPalkki = new ProgressBar(150, 10);
83        ElämäPalkki.BindTo(Elämämittari);
84        Add(ElämäPalkki);
85
86        ElämäPalkki.X = Screen.Right - 150;
87        ElämäPalkki.Y = Screen.Top - 20;
88        ElämäPalkki.Angle = Angle.RightAngle;
89        ElämäPalkki.BarColor = Color.Green;
90        ElämäPalkki.BorderColor = Color.White;
91        ElämäPalkki.Angle = Angle.FromDegrees(180);
92    }
93
94    void alkuValikko()
95    {
96        ClearAll();
97
98
99        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
100"Aloita peli", "Lopeta");
101        alkuValikko.ItemSelected += PainettiinValikonNappia;
102
103        Add(alkuValikko);
104
105
106
107    }
108    void PainettiinValikonNappia(int valinta)
109    {
110        switch (valinta)
111        {
112            case 0:
113                aloitaPeli();
114                break;
115
116
117            case 1:
118                Exit();
119                break;
120        }
121    }
122
123
124
125
126    void VahennaVoimia()
127    {
128        Elämämittari.Value--;
129    }
130
131
132
133    void VoimaLoppui()
134    {
135        Player1.Destroy();
136        MessageDisplay.Add("you are dead");
137        aloitaPeli();
138    }
139
140
141
142    void LuoKentta()
143    {
144        TileMap kentta = TileMap.FromLevelAsset("kentta1");
145        kentta.SetTileMethod('#', LisaaTaso);
146        kentta.SetTileMethod('V', LisaaVihu);
147        kentta.SetTileMethod('N', LisaaPelaaja);
148        kentta.SetTileMethod('&', LisaaPommi);
149
150        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
151        Level.CreateBorders();
152        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
153    }
154
155    void LisaaTaso(Vector paikka, double leveys, double korkeus)
156    {
157        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
158        taso.Position = paikka;
159        taso.Color = Color.Green;
160        Add(taso);
161    }
162
163
164    void LisaaPommi(Vector paikka, double leveys, double korkeus)
165    {
166        PhysicsObject Pommi = PhysicsObject.CreateStaticObject(leveys, korkeus);
167
168        Pommi.Shape = Shape.Rectangle;
169        Pommi.Position = paikka;
170        Pommi.Color = Color.Green;
171        Pommi.Mass = 1000.0;
172        Pommi.Tag = "pahis";
173        Add(Pommi);
174    }
175
176
177
178
179
180
181    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
182    {
183        Player1 = new PlatformCharacter(leveys, korkeus);
184        Player1.Position = paikka;
185        Player1.Mass = 4.0;
186        Player1.Image = pelaajanKuva;
187        Player1.Weapon = new AssaultRifle(50, 15);
188        Player1.Weapon.Ammo.Value = 1000;
189        Player1.Weapon.ProjectileCollision = AmmusOsui;
190        Player1.CollisionIgnoreGroup = 1;
191        AddCollisionHandler(Player1, "pahis", PelaajaOsuu);
192        Player1.Tag = "pelaaja";
193        Add(Player1);
194    }
195
196    void PelaajaOsuu(PhysicsObject Player1, PhysicsObject kohde)
197    {
198        Elämämittari.Value--;
199
200
201    }
202
203
204    void LisaaVihu(Vector paikka, double leveys, double korkeus)
205    {
206        Vihu Vihu1 = new Vihu(leveys * 3, korkeus * 3);
207        Vihu1.Position = paikka;
208        Vihu1.Mass = 8.0;
209        Vihu1.Image = VihunKuva;
210        Vihu1.Tag = "pahis";
211        Add(Vihu1);
212
213
214
215
216
217
218        FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja");
219        //seuraajanAivot.TargetDistance.AddTrigger(30, TriggerDirection.Down, Jahtaa);       
220
221        Vihu1.Brain = seuraajanAivot;
222
223
224
225        seuraajanAivot.Speed = 150;
226        seuraajanAivot.DistanceFar = 1000;
227        seuraajanAivot.DistanceClose = 0;
228        seuraajanAivot.StopWhenTargetClose = true;
229        //seuraajanAivot.FarBrain = satunnaisAivot;   
230
231
232        seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella;
233
234
235    }
236    void mitaTapahtuuKunOllaanLahella()
237    {
238    }
239    void Jahtaa()
240    {
241    }
242
243
244    void LisaaNappaimet()
245    {
246        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
247       
248        Keyboard.Listen(Key.Escape, ButtonState.Pressed,alkuValikko, "Lopeta peli");
249
250        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", Player1, -nopeus);
251        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", Player1, nopeus);
252        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", Player1, hyppyNopeus);
253
254        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu");
255        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
256
257        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", Player1, -nopeus);
258        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", Player1, nopeus);
259        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", Player1, hyppyNopeus);
260        ControllerOne.Vibrate(0.5, 0.5, 1.0, 1.0, 10000000000000);
261        ControllerOne.Listen(Button.X, ButtonState.Pressed, AmmuAseella, "Ammu");
262
263
264        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
265
266
267
268
269    }
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294    void Liikuta(PlatformCharacter hahmo, double nopeus)
295    {
296        hahmo.Walk(nopeus);
297    }
298
299    void Hyppaa(PlatformCharacter hahmo, double nopeus)
300    {
301        hahmo.Jump(nopeus);
302    }
303
304    void AmmuAseella()
305    {
306        PhysicsObject ammus = Player1.Weapon.Shoot();
307        if (ammus != null)
308        {
309            ammus.CollisionIgnoreGroup = 1;
310            ammus.Size *= 0.5;
311        }
312
313
314    }
315
316    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
317    {
318        ammus.Destroy();
319        Explosion rajahdys = new Explosion(10);
320        rajahdys.Position = ammus.Position;
321        Add(rajahdys);
322
323        if (kohde.Tag == "pahis")
324        {
325            Vihu Vihu2 = kohde as Vihu;
326            Vihu2.elamaLaskuri.Value--;
327        }
328
329
330
331
332    }
333
334
335
336
337
338
339
340}
Note: See TracBrowser for help on using the repository browser.