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

Revision 9160, 6.1 KB checked in by npo17_65, 23 months ago (diff)

hp bar toimii ja tausta on mitä on.

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