source: 2017/30/HugoE/HanniAndHoo/HanniAndHoo/HanniAndHoo/HanniAndHoo.cs @ 9155

Revision 9155, 5.5 KB checked in by npo17_65, 23 months ago (diff)

kun toinen pelaaja kuolee tulee loppuvalikko

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class HanniAndHoo : PhysicsGame
10{
11    Image HanninKuva = LoadImage("Hanni");
12    Image HoonKuva = LoadImage("Hoo");
13   
14         
15    PlasmaCannon HanninAse;
16    Cannon HoonAse;
17
18   
19
20   
21    PeliUkko Hanni;
22    PeliUkko Hoo;
23    public override void Begin()
24    {
25        AlkuValikko();
26     
27    }
28
29    void LuoPelaajat()
30    {
31        Hanni = new PeliUkko(80.0, 80.0);       
32        Hanni.X = Level.Left + 100.0;
33        Hanni.Y = 0.0;
34        Hanni.Shape = Shape.Circle;
35        Hanni.Color = Color.Blue;
36        Hanni.Image = HanninKuva;
37        Hanni.CanRotate = false;
38        Hanni.Tag = "pelaaja";
39        Add(Hanni);
40        HanninAse = new PlasmaCannon(60, 20);
41        HanninAse.ProjectileCollision = AmmusOsui;
42        HanninAse.X += 50;
43        Keyboard.Listen(Key.S, ButtonState.Pressed, AmmuAseella, "Ammu", HanninAse);
44        HanninAse.CanHitOwner = false;
45        Hanni.Weapon = HanninAse;
46        Hoo = new PeliUkko(100.0, 100.0);
47        Hoo.Tag = "pelaaja";
48        Hoo.X = Level.Right - 100.0;
49        Hoo.Y = 0.0;
50        Hoo.Shape = Shape.Circle;
51        Hoo.Color = Color.Red;
52        Hoo.Image = HoonKuva;
53        Hoo.CanRotate = false;
54        Add(Hoo);
55        HoonAse = new Cannon(90, 30);
56        HoonAse.ProjectileCollision = Ammus2Osui;
57        HoonAse.X += 80;
58        Hoo.Weapon = HoonAse;
59        Keyboard.Listen(Key.Down, ButtonState.Pressed, AmmuAseella2, "Ammu2", HoonAse);
60        HoonAse.CanHitOwner = false;
61        HoonAse.Power.DefaultValue = 20000;
62        AddCollisionHandler(Hoo, Hanni, Tormaa);
63
64        Hoo.Elamalaskuri.LowerLimit += LoppuValikko;
65        Hanni.Elamalaskuri.LowerLimit += LoppuValikko;
66    }
67
68    void AlkuValikko()
69    {
70        MediaPlayer.Play("taustamusiikki");
71        MediaPlayer.IsRepeating = true;
72        MultiSelectWindow alkuValikko = new MultiSelectWindow("Hanni vs. Hoo",
73        "Aloita peli", "Lopeta"); 
74        Level.Background.Color = Color.Gray;
75        Add(alkuValikko);
76        alkuValikko.AddItemHandler(0, AloitaPeli);
77        alkuValikko.AddItemHandler(1, Exit);
78
79
80    }
81    void LoppuValikko()
82    {
83        MultiSelectWindow loppuValikko = new MultiSelectWindow("Hanni vs. Hoo",
84       "Pelaa uudestaan", "Lopeta");
85        Level.Background.Color = Color.Gray;
86        Add(loppuValikko);
87        loppuValikko.AddItemHandler(0, AloitaPeli);
88        loppuValikko.AddItemHandler(1, Exit);
89    }
90
91    void AloitaPeli()
92    {
93        MediaPlayer.Stop();
94        ClearAll();
95        LuoKentta();
96        LuoPelaajat();
97        LuoNappaimet();
98    }
99
100
101    void Tormaa(PhysicsObject Tormaaja, PhysicsObject Kohde)
102    {
103        if (Kohde.Tag != "pelaaja") return;
104        PeliUkko pu = (PeliUkko)Kohde;
105        pu.Elamalaskuri.AddValue(-1);
106    }
107
108    void AmmusOsui(PhysicsObject Ammus, PhysicsObject Kohde)
109    {
110        Ammus.Destroy();
111        if (Kohde.Tag != "pelaaja") return;
112        PeliUkko pu = (PeliUkko)Kohde;
113        pu.Elamalaskuri.AddValue(-4);
114
115    }
116    void Ammus2Osui(PhysicsObject Ammus2, PhysicsObject Kohde2)
117    {
118        Ammus2.Destroy();
119        if (Kohde2.Tag != "pelaaja") return;
120        PeliUkko pu = (PeliUkko)Kohde2;
121        pu.Elamalaskuri.AddValue(-7);
122    }
123
124    void LuoNappaimet()
125    {
126        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppy, null, Hanni, 1000.0);
127        Keyboard.Listen(Key.D, ButtonState.Down, Kavely, null, Hanni, 500.0);
128        Keyboard.Listen(Key.A, ButtonState.Down, Kavely, null, Hanni, -500.0);
129        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppy, null, Hoo, 1000.0);
130        Keyboard.Listen(Key.Right, ButtonState.Down, Kavely, null, Hoo, 250.0);
131        Keyboard.Listen(Key.Left, ButtonState.Down, Kavely, null, Hoo, -250.0);
132        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
133
134    }
135    void LuoKentta()
136    {
137        Gravity = new Vector(0.0, -800.0);
138        Camera.Zoom(1.2);
139        Level.Background.Color = Color.Purple;
140        PhysicsObject AlaReuna = Level.CreateBottomBorder(0.0, true);
141        PhysicsObject OikeaReuna = Level.CreateRightBorder(0.0, true);
142        PhysicsObject VasenReuna = Level.CreateLeftBorder(0.0, true);
143        PhysicsObject YläReuna = Level.CreateTopBorder(0.0, true);
144    }
145
146
147
148    void Kavely(PeliUkko tyyppi, double liikkumisenMaara)
149    {
150
151        tyyppi.Walk(liikkumisenMaara);
152
153    }
154    void Hyppy(PeliUkko tyyppi, double hypynMaara)
155    {
156        tyyppi.Jump(hypynMaara);
157    }
158
159    void AmmuAseella(PlasmaCannon HanninAse)
160    {
161        PhysicsObject Ammus = HanninAse.Shoot();
162        HanninAse.FireRate = 2;
163        if (Ammus != null)
164        {
165            Ammus.Size *= 3;
166            Ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
167        }
168    }
169
170    void AmmuAseella2(Cannon HoonAse)
171    {
172        PhysicsObject Ammus = HoonAse.Shoot();
173        HoonAse.FireRate = 1;
174        if (Ammus != null)
175        {
176            Ammus.Size *= 4;
177            Ammus.MaximumLifetime = TimeSpan.FromSeconds(4.0);
178        }
179
180    }
181
182
183
184
185
186
187
188    class PeliUkko : PlatformCharacter
189    {
190        public IntMeter Elamalaskuri = new IntMeter(40, 0, 40);
191
192        public PeliUkko(double leveys, double korkeus)
193        : base(leveys, korkeus)
194        {
195            Elamalaskuri.LowerLimit += delegate { this.Destroy();};
196           
197
198        }
199       
200    }
201
202
203}
204
205
206
207
208
Note: See TracBrowser for help on using the repository browser.