source: 2014/26/TuukkaJ/NoobFight/NoobFight/NoobFight/NoobFight.cs @ 5134

Revision 5134, 6.5 KB checked in by jealkuik, 5 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9class Pelaaja : PhysicsObject
10{
11    public bool onkoilmassa = false;
12
13    public Pelaaja(double leveys, double korkeus)
14        : base(leveys, korkeus)
15    {
16       
17    }
18}
19
20public class NoobFight : PhysicsGame
21{
22    private Animation ukonKavely;
23    private Animation ukkelinKavely;
24    DoubleMeter elamaLaskuri = new DoubleMeter(10);
25    DoubleMeter elamaLaskuri2 = new DoubleMeter(10);
26
27    Pelaaja pelaaja1;
28    Pelaaja pelaaja2;
29
30
31    Image hahmo = LoadImage("Ukkeli1");
32    Image yolo = LoadImage("Ukko1");
33    Image tausta = LoadImage("kuva");
34    Image nyrkkiKuva = LoadImage("nyrkki");
35    private Image[] ukkelinkavely = LoadImages("hahmo", 1, 3);
36    private Image[] ukonkavely = LoadImages("hahmo", 1, 3);
37     
38    double nopeusKerroin = 300;
39   
40
41    public override void Begin()
42    {
43        LuoAlkuvalikko();
44    }
45
46
47    void LuoElamaLaskuri(double x, double y, DoubleMeter laskuri)
48    {
49        laskuri = new DoubleMeter(10);
50        laskuri.MaxValue = 10;
51        laskuri.MinValue = 0;
52        laskuri.LowerLimit += ElamaLoppui;
53
54        ProgressBar elamaPalkki = new ProgressBar(150, 20);
55        elamaPalkki.X = x;
56        elamaPalkki.Y = y;
57        elamaPalkki.BindTo(laskuri);
58        Add(elamaPalkki);
59
60
61
62    }
63
64    void LuoAikaLaskuri()
65    {
66        IntMeter laskuri = new IntMeter(60 * 3);
67        laskuri.MinValue = 0;
68        laskuri.LowerLimit += PeliOhi;
69    }
70
71
72    void ElamaLoppui()
73    {
74        MessageDisplay.Add("Finnish Him");
75    }
76
77
78    void AikaVahenee()
79    {
80        //aikaVahenee
81
82    }
83
84
85    void PeliOhi()
86    {
87    }
88
89
90    void LuoAlkuvalikko()
91    {
92        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
93        "new game", "-____________-");
94        alkuValikko.DefaultCancel = 3;
95        alkuValikko.Color = Color.Red;
96        alkuValikko.AddItemHandler(0, AloitaPeli);
97        alkuValikko.AddItemHandler(1, Exit);
98
99        Add(alkuValikko);
100    }
101
102
103    void AloitaPeli()
104    {
105        ClearAll();
106        IsPaused = false;
107        SmoothTextures = false;
108
109        ukonKavely = LoadAnimation("ukko");
110        ukkelinKavely = LoadAnimation("ukkeli");
111
112        LuoKentta();
113        AsetaOhjaimet();
114        LuoPeliAika();
115
116        LuoElamaLaskuri(Screen.Left + 150, Screen.Top - 20, elamaLaskuri);
117        LuoElamaLaskuri(Screen.Right - 150, Screen.Top - 20, elamaLaskuri2);
118
119       
120    }
121
122
123    void LuoPeliAika()
124    {
125        Timer ajastinPeliAika = new Timer();
126        ajastinPeliAika.Interval = 1.5;
127        ajastinPeliAika.Timeout += AikaVahenee;
128        ajastinPeliAika.Start(1);
129    }
130
131
132    void AsetaOhjaimet()
133    {
134        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, pelaaja1, new Vector(-1, 0));
135        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, pelaaja1, new Vector(1, 0));
136        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, null, pelaaja1);
137        Keyboard.Listen(Key.Space, ButtonState.Down, LyoPelaajaa1, null, pelaaja1);
138
139        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, pelaaja2, new Vector(-1, 0));
140        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, pelaaja2, new Vector(1, 0));
141        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, null, pelaaja2);
142        Keyboard.Listen(Key.F, ButtonState.Down, LyoPelaajaa2, null, pelaaja2);
143
144
145        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysayttaa pelin");
146
147        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
148        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
149    }
150
151
152    void LuoKentta()
153    {
154        SetWindowSize(1024, 768);
155        Level.Size = new Vector(1024, 768);
156        Camera.ZoomToLevel();
157        Level.CreateBorders();
158
159        LuoLattia();
160
161        pelaaja1 = LuoPelaaja(200, 300, ukkelinKavely, 300, -150, "pelaaja1");
162        AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja1, delegate { pelaaja1.onkoilmassa = false; });
163
164        pelaaja2 = LuoPelaaja(250, 370, ukonKavely, -400, -150, "pelaaja2");
165        AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja2, delegate { pelaaja2.onkoilmassa = false; });
166
167        Level.Background.Image = tausta;
168        Level.Background.ScaleToLevel();
169
170        Gravity = new Vector(0.0,-500.0);
171    }
172
173
174    Pelaaja LuoPelaaja(int leveys, int korkeus, Animation anim, int x, int y, string tagi)
175    {
176        Pelaaja pelaaja = new Pelaaja(leveys, korkeus);
177
178        pelaaja.Animation = new Animation(anim);
179        pelaaja.Animation.Start();
180
181        pelaaja.Tag = tagi;
182
183        pelaaja.X = x;
184        pelaaja.Y = y;
185
186        pelaaja.CanRotate = false;
187        Add(pelaaja);
188
189        return pelaaja;
190    }
191
192
193    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector suunta)
194    {
195        pelaaja.Velocity = nopeusKerroin * suunta;
196    }
197
198
199    void Hyppaa(Pelaaja pelaaja)
200    {
201        if (pelaaja.onkoilmassa) return;
202        pelaaja.onkoilmassa = true;
203        pelaaja.Hit(new Vector(0, 500));
204    }
205
206
207    void LuoLattia()
208    {
209        PhysicsObject lattia = PhysicsObject.CreateStaticObject(Level.Width, 100);
210        Add(lattia);
211        lattia.Y = Level.Bottom;
212        lattia.Color = Color.Transparent;
213    }
214
215
216    void LyoPelaajaa1(Pelaaja pelaaja)
217    {
218        PhysicsObject nyrkki = new PhysicsObject(20, 20);
219        nyrkki.Image = nyrkkiKuva;
220        nyrkki.X = pelaaja.X + pelaaja.Width / 2 + 20;
221        nyrkki.Y = pelaaja.Y;
222        Add(nyrkki);
223
224        AddCollisionHandler<PhysicsObject, Pelaaja>(nyrkki, pelaaja2, NyrkkiOsui);
225
226    }
227
228
229    void LyoPelaajaa2(Pelaaja pelaaja)
230    {
231        PhysicsObject nyrkki = new PhysicsObject(20, 20);
232        nyrkki.Image = nyrkkiKuva;
233        nyrkki.X = pelaaja.X + pelaaja.Width / 2 + 20;
234        nyrkki.Y = pelaaja.Y;
235        Add(nyrkki);
236
237        AddCollisionHandler<PhysicsObject,Pelaaja>(nyrkki, pelaaja2, NyrkkiOsui);
238
239    }
240
241    void NyrkkiOsui(PhysicsObject nyrkki, Pelaaja pelaaja)
242    {
243        if (pelaaja.Tag.Equals("pelaaja1"))
244        {
245            elamaLaskuri.Value--;
246            if (elamaLaskuri.Value <= 0) pelaaja1.Destroy();
247        }
248
249        else if (pelaaja.Tag.Equals("pelaaja2"))
250        {
251            elamaLaskuri2.Value--;
252            if (elamaLaskuri2.Value <= 0) pelaaja2.Destroy();
253        }
254    }
255
256}
Note: See TracBrowser for help on using the repository browser.