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

Revision 9156, 6.0 KB checked in by npo17_65, 2 years ago (diff)

hp palkit lisätty muttei toimi vielä kunnolla

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