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

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