source: 2013/23/LeoS/Tasohyppelypeli2.cs @ 4030

Revision 4009, 9.3 KB checked in by sijoseha, 7 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
9public class Kytta : PlatformCharacter
10{
11    public IntMeter hpLaskuri;
12
13
14
15    public Kytta(double width, double height, int hp)
16        : base(width, height)
17    {
18        hpLaskuri = new IntMeter(hp, 0, hp);
19        hpLaskuri.LowerLimit += this.Destroy;
20        ProgressBar hpNaytto = new ProgressBar(this.Width, 5);
21        hpNaytto.BarColor = Color.Green;
22        hpNaytto.BindTo(hpLaskuri);
23        this.Add(hpNaytto);
24        hpNaytto.Position = new Vector(0, this.Height / 2 + 15);
25        //hpLaskuri.LowerLimit
26    }
27}
28
29public class Tasohyppelypeli2 : PhysicsGame
30{
31
32    public Boolean tpmittari = true;
33    List<PlatformCharacter> kytat = new List<PlatformCharacter>();
34    PlatformCharacter homo;
35    Image olionkuva = LoadImage("hahmo");
36    Image hahmonkuva = LoadImage("iron");
37    Image olionkuva3 = LoadImage("Copcar");
38    Image seina = LoadImage("wall");
39    Image umad = LoadImage("mad");
40    SoundEffect trolli = LoadSoundEffect("badumtss");
41    SoundEffect hah = LoadSoundEffect("gay");
42    IntMeter elamat;
43    List<PushButton> potionit = new List<PushButton>();
44    Timer tpajastin;
45
46    public override void Begin()
47    {
48        LuoKentta();
49        MediaPlayer.Play("biaatch");
50        MediaPlayer.IsRepeating = true;
51        MediaPlayer.Volume = 50;
52        Gravity = new Vector(0, -2000);
53        elamat = new IntMeter(10, 0, 10);
54        elamat.LowerLimit += delegate { 
55            homo.Destroy();
56            MediaPlayer.Stop();
57            hah.Play();
58            Widget imaku = new Widget(umad);
59            Add(imaku);
60       
61        };
62        Level.CreateBorders();
63        tpajastin = new Timer();
64        tpajastin.Interval = 4;
65        tpajastin.Timeout += muutateleport;
66        tpajastin.Start(1);
67        Label tpnautto = new Label();
68        tpnautto.Right = Screen.Right - 10;
69        tpnautto.Top = Screen.Top - 10;
70        tpnautto.TextColor = Color.White;
71        tpnautto.DecimalPlaces = 1;
72        tpnautto.BindTo(tpajastin.SecondCounter);
73        Add(tpnautto);
74        ProgressBar elamaPalkki = new ProgressBar(150, 20);
75        elamaPalkki.Left = Screen.Left + 10;
76        elamaPalkki.Top = Screen.Top - 10;
77        elamaPalkki.BindTo(elamat);
78        elamaPalkki.Color = Color.Black;
79        elamaPalkki.BarColor = Color.Green;
80        elamaPalkki.BorderColor = Color.Black;
81        Add(elamaPalkki);
82
83
84        homo = new PlatformCharacter(150, 150);
85        homo.Shape = Shape.Pentagon;
86        homo.Image = olionkuva;
87        homo.CanRotate = false;
88        homo.Tag = "homo";
89        Add(homo);
90        AddCollisionHandler(homo, "ammus", Hittipointsi);
91        AddCollisionHandler(homo, "potion", OtaPotion);
92        AddCollisionHandler<PlatformCharacter, Kytta>(homo, Hyokkaa);
93        Mouse.IsCursorVisible = true;
94        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "A.C.A.B");    //näppäinkomennot
95        Keyboard.Listen(Key.A, ButtonState.Down, Kavele, null, (-100.0));                                               //näppäinkomennot
96        Keyboard.Listen(Key.D, ButtonState.Down, Kavele, null, (100.0));                                                //näppäinkomennot                                                //näppäinkomennot
97        //Keyboard.Listen(Key.A, ButtonState.Down, hyokkaa, null, homo);
98        Keyboard.Listen(Key.Z, ButtonState.Released, JuoPotion, null);
99        Keyboard.Listen(Key.E, ButtonState.Down, Pusauta, null);
100        Keyboard.Listen(Key.Q, ButtonState.Down, Jatka, null);
101        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, gayteleport, null);
102        Camera.ZoomToLevel();
103
104    }
105
106    void Hyokkaa(PlatformCharacter p, Kytta k)
107    {
108        k.Destroy();
109        Rapetime();
110        trolli.Play();
111       
112       
113    }
114
115    void Rapetime()
116    {
117        Label tekstikenttä = new Label(200, 50);
118        tekstikenttä.Text = "Rape Time";
119        tekstikenttä.Y = 0;
120        tekstikenttä.X = 0;
121        Add(tekstikenttä);
122    }
123   
124   
125   
126    void gayteleport()
127    {
128        if (tpmittari == true)
129        {
130            Vector telePoint = Mouse.PositionOnWorld;
131            for (int i = 0; i < kytat.Count; i++)
132            {
133                if (Vector.Distance(kytat[i].Position, telePoint) <= 300)
134                    return;
135            }
136
137            homo.Position = telePoint;
138            tpmittari = false;
139            tpajastin.Reset();
140            tpajastin.Start(1);
141        }
142    }
143    void muutateleport()
144    {
145        tpmittari = true;
146    }
147
148    void Pusauta()
149    {
150        IsPaused = true;
151    }
152
153    void Jatka()
154    {
155        IsPaused = false;
156    }
157
158
159    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
160    {
161        if (kohde is Kytta)
162        {
163            Kytta kytta = (Kytta)kohde;
164            kytta.hpLaskuri.Value--;
165        }
166    }
167
168
169    void JuoPotion()
170    {
171        if (potionit.Count == 0) return;
172        potionit[potionit.Count - 1].Destroy();
173        potionit.RemoveAt(potionit.Count - 1);
174        PaivitaPotionLista();
175
176        elamat.Value += 1;
177    }
178
179
180    void OtaPotion(PhysicsObject snoop, PhysicsObject pot)
181    {
182        pot.Destroy();
183        potionit.Add(LisaaPotioniListaan());
184        PaivitaPotionLista();
185    }
186
187
188    void PaivitaPotionLista()
189    {
190        for (int i = 0; i < potionit.Count; i++)
191        {
192            potionit[i].Position = new Vector(Screen.Left + 30 + potionit[i].Size.X * i, Screen.Bottom + 30 + potionit[i].Size.Y);
193            if (!(potionit[i].IsAddedToGame)) Add(potionit[i]);
194        }
195    }
196
197
198    PushButton LisaaPotioniListaan()
199    {
200        PushButton but = new PushButton(100, 100); //TODO: Lisää kuva 10,10 paikalle
201        but.Shape = Shape.Circle;
202        return but;
203    }
204
205
206
207    void Hittipointsi(PhysicsObject Snoopdogg, PhysicsObject ammus)
208    {
209        elamat.Value -= 1;
210        ammus.Destroy();
211
212    }
213
214    void Morepower(Vector paikka, double leveys, double korkeus)
215    {
216        PhysicsObject potioni = new PhysicsObject(leveys, korkeus);
217        potioni.Position = paikka;
218        potioni.Tag = "health";
219        Add(potioni);
220    }
221
222
223    void LuoKentta()
224    {
225        TileMap ruudut = TileMap.FromLevelAsset("kentta");
226        ruudut.SetTileMethod('_', LuoPalikka);
227        ruudut.SetTileMethod('-', LuoViiva);
228        ruudut.SetTileMethod('M', LuoKytta);
229        ruudut.SetTileMethod('C', LuoAuto);
230        ruudut.SetTileMethod('P', LuoPotion);
231        ruudut.Execute(20, 20);
232
233    }
234    void Ammu(PlatformCharacter pelaaja)
235    {
236        PhysicsObject ammus = pelaaja.Weapon.Shoot();
237        if (ammus != null)
238        {
239
240        }
241    }
242
243
244    void Kavele(double vektori)
245    {
246        homo.Walk(vektori);
247    }
248
249    //void Hyppaa(double vektori)
250    //{
251    //    homo.Jump(vektori);
252    //}
253
254
255    void LuoPalikka(Vector paikka, double leveys, double korkeus)
256    {
257        PhysicsObject palikka = PhysicsObject.CreateStaticObject(40, 40);
258        palikka.Position = paikka;
259        palikka.Image = seina;
260        Add(palikka);
261    }
262
263    void LuoPotion(Vector paikka, double leveys, double korkeus)
264    {
265        PhysicsObject potioni = new PhysicsObject(leveys, korkeus);
266        potioni.Position = paikka;
267        potioni.Tag = "potion";
268        Add(potioni);
269    }
270
271    void LuoViiva(Vector paikka, double leveys, double korkeus)
272    {
273        PhysicsObject viiva = PhysicsObject.CreateStaticObject(40, 40);
274        viiva.Position = paikka;
275        viiva.Color = Color.Blue;
276        Add(viiva);
277    }
278
279    void LuoKytta(Vector paikka, double leveys, double korkeus)
280    {
281        Kytta kytta = new Kytta(93, 150, 2);
282        kytta.Position = paikka;
283        kytta.Image = hahmonkuva;
284        kytta.Tag = "kytta";
285
286        AssaultRifle kyttaAse = new AssaultRifle(50.0, 50.0);
287        kytta.Weapon = kyttaAse;
288        kyttaAse.InfiniteAmmo = true;
289        Add(kytta);
290
291        List<string> tagit = new List<string>();
292        tagit.Add("homo");
293
294        FollowerBrain aivot = new FollowerBrain(tagit.ToArray());
295        aivot.TurnWhileMoving = true;
296        aivot.Speed = 0;
297        kyttaAse.Brain = aivot;
298        Timer ajastin = new Timer();
299        ajastin.Interval = 1.0;
300        ajastin.Timeout += delegate { TarkistaAmpuuko(kytta); };
301        ajastin.Start();
302        kytta.Destroyed += delegate { ajastin.Stop(); kytat.Remove(kytta); };
303        kytat.Add(kytta);
304    }
305
306
307    void TarkistaAmpuuko(Kytta kytta)
308    {
309        if (Vector.Distance(kytta.Position, homo.Position) <= 1000)
310        {
311            // ase.Angle = new Vector(ase.Position.X - Snoopdogg.Position.X, ase.Position.Y - Snoopdogg.Position.Y).Angle;
312            PhysicsObject ammus = kytta.Weapon.Shoot();
313            ammus.Size *= 3;
314            ammus.LifetimeLeft = TimeSpan.FromSeconds(1);
315            ammus.Tag = "ammus";
316        }
317    }
318
319    void LuoAuto(Vector paikka, double leveys, double korkeus)
320    {
321        PhysicsObject copcar = PhysicsObject.CreateStaticObject(100, 100);
322        copcar.Position = paikka;
323        copcar.Image = olionkuva3;
324        copcar.Shape = Shape.FromImage(olionkuva3);
325        Add(copcar);
326    }
327}
328
329
330
Note: See TracBrowser for help on using the repository browser.