source: 2015/30/CamillaT/YouCombat/YouCombat/YouCombat/YouCombat.cs @ 7023

Revision 7023, 9.3 KB checked in by picakrty, 8 years ago (diff)

Peli semi valmis silti voi hia jos siltä tuntuu

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class YouCombat : PhysicsGame
10{
11
12    Ihminen rauski;
13    Ihminen miisas;
14    //Ihminen soikku;
15    //Ihminen herba;
16    //Ihminen lakko;
17    //Ihminen j0p;
18    //Ihminen pinsku
19
20    Image tubecon      = LoadImage("TubeCombat - tausta");
21    Image rauskinKuva  = LoadImage("TubeCombat - Rauski");
22    Image miisasinKuva = LoadImage("TubeCombat - Miisas");
23    Image soikunKuva   = LoadImage("TubeCombat - Soikku");
24    Image tietoKuva    = LoadImage("TubeCombat - Tietoa");
25    //Image herbanKuva = LoadImage("TubeCombat - Herba ");
26    //Image lakonKuva  = LoadImage("TubeCombat - Lakko ");
27    //Image j0pinKuva  = LoadImage("TubeCombat - J0P   ");
28    //Image pinskunKuva = LoadImage("TubeCombat - Pinsku");
29
30    Image rauskinUlti  = LoadImage  ("TubeCombat - Käsi");
31    Image miisasUlti   = LoadImage("TubeCombat - MiisasUlti");
32
33    Ihminen pelaaja1;
34    Ihminen pelaaja2;
35
36    double nopeus      = 400.0;
37    double hyppynopeus = 800.0;
38
39    Animation rauskinHyokkays;
40    Animation rauskinHyppy;
41    Animation rauskiinaHyokkays;
42    Animation rauskinKavely;
43
44    Animation miisasHyokkays;
45
46    public override void Begin()
47    {
48        // TODO Lisää hahmoja, niiden liikkeet, uusia taustoja, enemmän efektejä ja erillaisia efekti musiikkeja ja eri kenttiin eri musat: )
49        AlkuValikko();
50    }
51
52    void AloitaPeli()
53    {
54 
55                 LuoKentta();
56                    Hahmot();
57              PeliMusiikit();
58        HahmojenAnimaatiot();
59           pelaaja1 = rauski;
60           pelaaja2 = miisas;
61            HahmojenOhjaus();
62               LuoHelaBars();
63             
64    }
65
66    void LuoKentta()
67    {
68        Level.Width  = Screen.Width;
69        Level.Height = Screen.Height;
70
71        GameObject tausta = new GameObject(Level.Width, Level.Height);
72        tausta.Image      = tubecon;
73        Add(tausta, -3);
74
75        Surface alaReuna = Surface.CreateBottom(Level);
76        Add(alaReuna);
77
78        Level.CreateBorders();
79
80        alaReuna.Y = Level.Bottom + 50;
81        alaReuna.Color = Color.Transparent;
82
83        Gravity = new Vector(0.0, -700.0);
84
85
86    }
87
88    void Hahmot()
89    {
90        rauski   = new Ihminen(270, 450);
91        miisas   = new Ihminen(270, 450);
92        //soikku = new PlatformCharacter(270, 450);
93        //herba  = new PlatformCharacter (270, 450);
94
95        rauski.X   = 560.00;
96        rauski.Y   = -200.0;
97
98        miisas.X   = -650.00;
99        miisas.Y   = -200.0;
100
101        //soikku.X = -500.00;
102        //soikku.Y = -200.0;
103
104        //herba.X  = 0.0
105        //herba.Y  = 0.0
106
107        rauski.Image   = rauskinKuva;
108        miisas.Image   = miisasinKuva;
109        //soikku.Image = soikunKuva;
110        //herba.Image  = herbanKuva;
111
112          Add(rauski);
113          Add(miisas);
114        //Add(soikku);
115         //Add(herba);
116
117    }
118
119    void LuoHelaBars()
120    {
121        ProgressBar elamaPalkki1 = new ProgressBar(350, 150);
122        elamaPalkki1.X = Screen.Right - 200;
123        elamaPalkki1.Y = Screen.Top - 100;
124        elamaPalkki1.BindTo(rauski.ElamaLaskuri);
125        elamaPalkki1.Image = LoadImage ("ElamaPalkki1-0prossaa");
126        elamaPalkki1.BarImage = LoadImage("ElamaPalkki1"); 
127        Add(elamaPalkki1);
128
129        ProgressBar elamaPalkki2 = new ProgressBar(350, 150);
130        elamaPalkki2.X = Screen.Left + 200;
131        elamaPalkki2.Y = Screen.Top - 100;
132        elamaPalkki2.BindTo(miisas.ElamaLaskuri);
133        elamaPalkki2.Image = LoadImage("ElamaPalkki-0prossaa");
134        elamaPalkki2.BarImage = LoadImage("ElamaPalkki"); 
135        Add(elamaPalkki2);
136    }
137
138
139    void HahmojenAnimaatiot()
140    {
141       rauskinHyppy            = LoadAnimation("RauskiHyppy");
142       rauskinHyokkays         = LoadAnimation("RauskiHyokkays");
143       rauskiinaHyokkays       = LoadAnimation("RauskiinaHyokkays");
144       rauskinKavely           = LoadAnimation("Rauski");
145       rauski.AnimWalk         = rauskinKavely;
146       rauski.AnimIdle         = new Animation (rauskinKuva);
147       rauski.AnimJump         = rauskinHyppy;
148       
149       
150   
151     Animation miisaksenKavely = LoadAnimation("Miisas");
152        miisas.AnimWalk        = miisaksenKavely;
153        miisas.AnimWalk.FPS    = 5;
154        miisas.AnimIdle        = new Animation(miisasinKuva);
155        miisasHyokkays = LoadAnimation("MiisasHyokkays"); 
156       
157       
158        //Miisasken hyppy.2
159
160    }
161
162
163
164    void HahmojenOhjaus()
165    {
166        Keyboard.Listen(Key.A, ButtonState.Down,     Liikuta,  "Liiku Vasemmalle", pelaaja1, -nopeus);
167        Keyboard.Listen(Key.W, ButtonState.Pressed,  Hyppaa,   "Hyppy Ylos",   pelaaja1, hyppynopeus);
168        Keyboard.Listen(Key.D, ButtonState.Down,     Liikuta,  "Liiku Oikealle",    pelaaja1, nopeus);
169        Keyboard.Listen(Key.S, ButtonState.Pressed, Hyokkaus, "Hyokkaa Eteen", pelaaja1, pelaaja2, new Animation[] {rauskinHyokkays, new Animation(rauskinKuva)}, 25);
170        Keyboard.Listen(Key.E, ButtonState.Pressed, RauskiinaHyokkays,  "Hyokkaa Eteen", pelaaja1, pelaaja2);
171        Keyboard.Listen(Key.LeftShift, ButtonState.Pressed, Ulti, "Ulti Eteen", pelaaja1, pelaaja2, rauskinUlti);
172
173        Keyboard.Listen(Key.Left, ButtonState.Down,  Liikuta,  "Liiku Vasemmalle",   pelaaja2, -nopeus);
174        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa,   "Hyppy Ylos",     pelaaja2, hyppynopeus);
175        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta,  "Liiku Oikealle",      pelaaja2, nopeus);
176        Keyboard.Listen(Key.Enter, ButtonState.Pressed, Hyokkaus, "Hyokkaa Eteen",  pelaaja2, pelaaja1, new Animation[] {miisasHyokkays, new Animation(miisasinKuva)}, 25);
177        Keyboard.Listen(Key.Space, ButtonState.Pressed, Ulti, "Ulti Eteen",     pelaaja2, pelaaja1, miisasUlti);
178
179        //Korjaa Miisasin eka hyökkays ja ultit molemmille!!!!!!
180
181        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
182
183        //Koita saada toimii. Luo menuValikko -_-"
184       
185
186    }
187
188    void Hyppaa(PlatformCharacter pelaaja, double suunta)
189    {
190        pelaaja.Jump           (suunta);
191       
192    }
193
194    void Liikuta(PlatformCharacter pelaaja, double suunta)
195    {
196        pelaaja.Walk(suunta);
197    }
198
199    void Hyokkaus(PlatformCharacter pelaaja, Ihminen hyokkayksenKohde, Animation[] animaatiot, int vahingonMaara)
200    {
201        Animation hyokkaysanim = animaatiot[0];
202        Animation paikallaananim = animaatiot[1];
203
204        pelaaja.AnimIdle = hyokkaysanim;
205        pelaaja.AnimIdle.StopOnLastFrame = true;
206
207        // Tässä Lisätään tavallinen animaatio päälle kun hyökkäys on ohi.
208        pelaaja.AnimIdle.Played += delegate
209        {
210            pelaaja.AnimIdle = paikallaananim;
211            hyokkayksenKohde.OtaVahinkoa(vahingonMaara);
212
213
214        };
215
216    }
217
218
219    void RauskiinaHyokkays(PlatformCharacter pelaaja, Ihminen hyokkayksenKohde)
220    {
221        pelaaja.AnimIdle = rauskiinaHyokkays;
222        pelaaja.AnimIdle.StopOnLastFrame = true;
223
224        // Tässä Lisätään tavallinen animaatio päälle kun hyökkäys on ohi.
225        pelaaja.AnimIdle.Played += delegate
226        {
227            pelaaja.AnimIdle = new Animation(rauskinKuva);
228            hyokkayksenKohde.OtaVahinkoa(25);
229
230
231        };
232
233    }
234
235    void Ulti(Ihminen hyokkaaja, Ihminen uhri, Image ultiKuva)
236    {
237        GameObject ulti = new GameObject(Screen.Width, Screen.Height);
238        Add(ulti);
239        ulti.Image = ultiKuva;
240        Timer.SingleShot(2.0, delegate { ulti.Destroy(); uhri.OtaVahinkoa(50); });
241       
242    }
243
244    void VihollinenKuolee()
245    {
246
247        miisas.Destroy();
248
249        //Tännekki Elämää
250    }
251
252    void PeliMusiikit()
253    {
254        MediaPlayer.Play("TaustaMusa");
255
256        MediaPlayer.IsRepeating = true;
257    }
258    void MenuJaPause()
259    {
260        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
261
262
263
264    }
265
266    void AloitaAlusta()
267    {
268        ClearAll();
269        LuoKentta();
270        HahmojenOhjaus();
271    }
272
273    void AlkuValikko()
274    {
275        Level.Background.Color = Color.Black;
276        MultiSelectWindow alkuValikko = new MultiSelectWindow("TubeCombat", "Aloita peli", "Lopeta", "Tietoa");
277        alkuValikko.SelectionColor = Color.Blue;
278        alkuValikko.Color = Color.Red;
279        Add(alkuValikko);
280        alkuValikko.AddItemHandler(0, AloitaPeli);
281        alkuValikko.AddItemHandler(1, Exit);
282        alkuValikko.AddItemHandler(2, Tietoa);
283
284    }
285
286    void Tietoa()
287    {
288        GameObject tiedot = new GameObject(tietoKuva);
289        Add(tiedot);
290
291        Timer.SingleShot(4, delegate { ClearAll(); AlkuValikko(); });
292    }
293   
294}
295
296
297class Ihminen : PlatformCharacter
298    {
299        private IntMeter elamaLaskuri = new IntMeter(100, 0, 200);
300        public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
301
302        public Ihminen (double leveys, double korkeus)
303            : base(leveys, korkeus)
304        {
305            elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
306        }
307
308
309       
310 
311
312       public void OtaVahinkoa(int vahinko)
313        {
314            //  AddCollisionHandler(pelaaja1, Pelaaja1Tormasi);
315            elamaLaskuri.Value-=vahinko;
316
317        }
318
319   
320
321   
322
323
324
325
326}
Note: See TracBrowser for help on using the repository browser.