source: 2011/24/LeeviK/Taistelu Peli/Taistelu Peli/Taistelu Peli/Taistelu_Peli.cs @ 4719

Revision 4719, 5.1 KB checked in by lesejuku, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Taistelu_Peli : PhysicsGame
10{
11    Image pelaajanKuva = LoadImage("Pelaaja");
12    Image vihollisenKuva = LoadImage("Vihollinen");
13    PhysicsObject pelaaja1;
14    DoubleMeter elamaLaskuri1;
15    PhysicsObject pelaaja2;
16    DoubleMeter elamaLaskuri2;
17    Image cBox = LoadImage("collisionBox");
18    Image taustaKuva = LoadImage("space-wallpaper-space-32897723-1920-1080");
19    private double ammusVoima = 1000;
20    private Image ammusKuva = LoadImage("ase");
21
22    public override void Begin()
23    {
24        MultiSelectWindow alkuValikko = new MultiSelectWindow("ULTIMATE SPACE FIGHT", "Aloita peli", "Lopeta");
25        Add(alkuValikko);
26
27        MediaPlayer.Play("LASTNINJA2GUITAR");
28        MediaPlayer.IsRepeating = true;
29
30        Gravity = new Vector(0.0, -000.0);
31
32        pelaaja1 = new PhysicsObject(100, 200);
33        pelaaja1.CollisionIgnoreGroup = 1;
34        pelaaja1.Shape = Shape.FromImage(cBox);
35        pelaaja1.Image = pelaajanKuva;
36        pelaaja1.X = -200.0;
37        pelaaja1.Tag = "pelaaja";
38        pelaaja1.Y = -300.0;
39        pelaaja1.Restitution = 0.5;
40        Add(pelaaja1);
41
42        pelaaja2 = new PhysicsObject(100, 200);
43        pelaaja2.CollisionIgnoreGroup = 2;
44        pelaaja1.Shape = Shape.FromImage(cBox);
45        pelaaja2.Image = vihollisenKuva;
46        pelaaja2.X = 200.0;
47        pelaaja2.Y = -300.0;
48        pelaaja2.Tag = "pelaaja";
49        pelaaja2.Restitution = 0.5;
50        Add(pelaaja2);
51
52        Camera.ZoomToLevel();
53        Level.CreateBorders();
54        Level.Background.Image = taustaKuva;
55       
56        Surface alaReuna = Surface.CreateBottom(Level);
57        alaReuna.Color = Color.Black;
58        Add(alaReuna);
59
60        LuoElamaLaskurit();
61
62        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
63        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(-1000, 0));
64        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(1000, 0));
65        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(0, 1000));
66        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(0, -1000));
67        Keyboard.Listen(Key.LeftControl, ButtonState.Pressed, Ammu, null, pelaaja1, 1, Angle.Zero, Angle.StraightAngle);
68
69        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(-1000, 0));
70        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(1000, 0));
71        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(0, 1000));
72        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(0, -1000));
73        Keyboard.Listen(Key.RightControl, ButtonState.Pressed, Ammu, null, pelaaja2, 2, Angle.StraightAngle, Angle.Zero);
74    }
75
76    void LuoElamaLaskurit()
77    {
78        elamaLaskuri1 = new DoubleMeter(50);
79        elamaLaskuri1.MaxValue = 50;
80        elamaLaskuri1.LowerLimit += delegate { ElamaLoppui("Pelaaja 2 voitti pelin"); };
81
82        ProgressBar elamaPalkki = new ProgressBar(150, 20);
83        elamaPalkki.X = Screen.Left + 150;
84        elamaPalkki.BorderColor = Color.Black;
85        elamaPalkki.Y = Screen.Top - 20;
86        elamaPalkki.BindTo(elamaLaskuri1);
87        Add(elamaPalkki);
88
89        elamaLaskuri2 = new DoubleMeter(50);
90        elamaLaskuri2.MaxValue = 50;
91        elamaLaskuri2.LowerLimit += delegate { ElamaLoppui("Pelaaja 1 voitti pelin"); };
92
93        ProgressBar elamaPalkki2 = new ProgressBar(150, 20);
94        elamaPalkki2.X = Screen.Right - 150;
95        elamaPalkki2.BorderColor = Color.Black; 
96        elamaPalkki2.Y = Screen.Top - 20;
97        elamaPalkki2.BindTo(elamaLaskuri2);
98        Add(elamaPalkki2);
99    }
100
101    void ElamaLoppui(String viesti)
102    {
103        ClearAll();
104        Label l = new Label(viesti);
105        Add(l);
106        Timer.SingleShot(3.0, Begin);
107        Timer.SingleShot(3.0, l.Destroy);
108    }
109
110    void Ammu(PhysicsObject pelaaja, int ignoreGroup, Angle ammuksenLahtokulma, Angle ammuksenKuvanKulma)
111    {
112        DoubleMeter vastustajanElama;
113        if (ignoreGroup == 1) vastustajanElama = elamaLaskuri2;
114        else vastustajanElama = elamaLaskuri1;
115
116        Angle uusiKulma = pelaaja.Angle + ammuksenLahtokulma;
117        PhysicsObject ammus = new PhysicsObject(75, 75);
118        ammus.Image = ammusKuva;
119        ammus.CollisionIgnoreGroup = ignoreGroup;
120        ammus.Angle = pelaaja.Angle + ammuksenKuvanKulma;
121        ammus.Position = pelaaja.Position;
122        Add(ammus);
123        ammus.Hit(Vector.FromLengthAndAngle(ammusVoima, uusiKulma));
124        AddCollisionHandler(ammus, CollisionHandler.DestroyObject);
125        AddCollisionHandler(ammus, "pelaaja", CollisionHandler.AddMeterValue(vastustajanElama, -1));
126    }
127
128    void LiikutaPelaajaa1(Vector vektori)
129    {
130        pelaaja1.Push(vektori);
131    }
132
133    void LiikutaPelaajaa2(Vector vektori)
134    {
135        pelaaja2.Push(vektori);
136    }
137
138}
Note: See TracBrowser for help on using the repository browser.