source: 2012/26/KasperiK/TheLastBattle/TheLastBattle/TheLastBattle/TheLastBattle.cs @ 3284

Revision 3284, 5.7 KB checked in by jikakuus, 9 years ago (diff)

Talletus.

Line 
1//The Last Battle
2//By: Kasperi Kuusipuro
3//Älä aja Ongelma
4using System;
5using System.Collections.Generic;
6using Jypeli;
7using Jypeli.Assets;
8using Jypeli.Controls;
9using Jypeli.Effects;
10using Jypeli.Widgets;
11
12public class TheLastBattle : PhysicsGame
13{
14   //Alustetaan Muuttujia
15    PhysicsObject Pelaaja1;
16    PhysicsObject Pelaaja2;
17   
18    Image IhmisAlus = LoadImage("IhmisAlus");
19    Image AlienAlus = LoadImage("AlienAlus");
20    Image taustaKuva = LoadImage("tausta");
21    Image AlienAlus2 = LoadImage("AlienAlus2");
22    Image IhmisAlus2 = LoadImage("IhmisAlus2");
23
24    PlasmaCannon plasmaTykkiP1;
25    PlasmaCannon plasmaTykkiP2;
26
27    DoubleMeter elkkuMittariP1;
28    DoubleMeter elkkuMittariP2;
29
30    public override void Begin()
31    {
32       //Kutsutaan Pelin luovat aliohjelmat
33        LuoKentta();
34        LisaaOhjaimet();
35    }
36
37   // Luodaan pelaajat  ja Kenttä
38    void LuoKentta()
39    {
40        Level.CreateBorders(0.5, false);
41        Level.Background.Image = taustaKuva;
42        Level.Background.FitToLevel();
43        Camera.ZoomToLevel();
44
45        Pelaaja1 = new PhysicsObject(40, 50);
46        Pelaaja1.Image = IhmisAlus;
47        Pelaaja1.Restitution = 0.5;
48        Pelaaja1.X = Level.Left + 50;
49        Pelaaja1.Mass = 100;
50        Add(Pelaaja1);
51
52        //Luodaan plasmatykki
53        plasmaTykkiP1 = new PlasmaCannon(20, 5);
54        plasmaTykkiP1.ProjectileCollision = PlasmaPalloOsuu;
55        plasmaTykkiP1.IsVisible = false;
56        plasmaTykkiP1.InfiniteAmmo = true;
57        Pelaaja1.Add(plasmaTykkiP1);
58
59        Pelaaja2 = new PhysicsObject(40, 50);
60        Pelaaja2.Image = AlienAlus;
61        Pelaaja2.Restitution = 0.5;
62        Pelaaja2.X = Level.Right - 50;
63        Pelaaja2.Mass = 100.0;
64        Add(Pelaaja2);
65
66        //Luodaan plasmatykki
67        plasmaTykkiP2 = new PlasmaCannon(20, 5);
68        plasmaTykkiP2.ProjectileCollision = PlasmaPalloOsuu;
69        plasmaTykkiP2.IsVisible = false;
70        plasmaTykkiP2.InfiniteAmmo = true;
71        plasmaTykkiP2.Angle = Angle.StraightAngle;
72        Pelaaja2.Add(plasmaTykkiP2);
73
74        //Kutsutaan elkkumittareita
75        LisaaElkut(Level.Left + 50, Level.Top , Color.Red, elkkuMittariP1);
76        LisaaElkut(Level.Right - 50, Level.Top, Color.LimeGreen, elkkuMittariP2);
77    }
78
79    //Aliohjelma elkkumittareiden tekemiseen
80    void LisaaElkut(double x, double y, Color vari, DoubleMeter mittari)
81    {
82        mittari = new DoubleMeter(100);
83        mittari.MaxValue = 100;
84        ProgressBar elkkuPalkki = new ProgressBar(200, 25);
85        elkkuPalkki.BindTo(mittari);
86        Add(elkkuPalkki);
87
88        elkkuPalkki.X = x;
89        elkkuPalkki.Y = y;
90        elkkuPalkki.BarColor = vari;
91        elkkuPalkki.BorderColor = vari;
92
93    }
94
95   //Lisätään ohjaimet
96    void LisaaOhjaimet()
97  {
98       Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, "Pelaaja1 kaasu",Pelaaja1, 5000.0, IhmisAlus2);
99       Keyboard.Listen(Key.W, ButtonState.Released, LiikutaPelaajaa, null, Pelaaja1, 0.0, IhmisAlus);
100       Keyboard.Listen(Key.A, ButtonState.Down, KaannaPelaajaa, "Pelaaja1 käänny vasemmalle", Pelaaja1, 3.0);
101       Keyboard.Listen(Key.A, ButtonState.Released, KaannaPelaajaa, null, Pelaaja1, 0.0);
102       Keyboard.Listen(Key.D, ButtonState.Down, KaannaPelaajaa, "Pelaaja1 käänny oikealle", Pelaaja1, -3.0);
103       Keyboard.Listen(Key.D, ButtonState.Released, KaannaPelaajaa, null, Pelaaja1, 0.0);
104       Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Pelaaja1 ammu aseella", plasmaTykkiP1);
105
106       Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Pelaaja2 kaasu", Pelaaja2, -5000.0, AlienAlus2);
107       Keyboard.Listen(Key.Up, ButtonState.Released, LiikutaPelaajaa, null, Pelaaja2, 0.0, AlienAlus);
108       Keyboard.Listen(Key.Left, ButtonState.Down, KaannaPelaajaa, "Pelaaja2 käänny vasemmalle", Pelaaja2, 3.0);
109       Keyboard.Listen(Key.Left, ButtonState.Released, KaannaPelaajaa, null, Pelaaja2, 0.0);
110       Keyboard.Listen(Key.Right, ButtonState.Down, KaannaPelaajaa, "Pelaaja2 käänny oikealle", Pelaaja2, -3.0);
111       Keyboard.Listen(Key.Right, ButtonState.Released, KaannaPelaajaa, null, Pelaaja2, 0.0);
112       Keyboard.Listen(Key.RightControl, ButtonState.Down, AmmuAseella, "Pelaaja2 ammu aseella", plasmaTykkiP2);
113
114       Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Ohjeet");
115       PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
116       Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
117    }
118
119   //Aliohjelma Pelaajan liikuttamiseen
120    void LiikutaPelaajaa(PhysicsObject pelaaja, double nopeus, Image kuva)
121   {
122       Vector pelaajanSuunta = Vector.FromLengthAndAngle(nopeus, pelaaja.Angle);
123       pelaaja.Push(pelaajanSuunta);
124       pelaaja.Image = kuva;
125   }
126    //Aliohjelma pelaajan kääntämiseen
127    void KaannaPelaajaa(PhysicsObject pelaaja, double voima)
128   {
129       pelaaja.AngularVelocity = voima;
130   }
131
132    //Aliohjelma plasmapallon osumiseen
133    void PlasmaPalloOsuu(PhysicsObject ammus, PhysicsObject kohde)
134   {
135       ammus.Destroy();
136       Explosion rajahdys = new Explosion(10);
137       rajahdys.Position = ammus.Position;
138       rajahdys.Force = 10;
139       Add(rajahdys);
140
141       if (kohde == Pelaaja1)
142       {
143           elkkuMittariP1.Value--;//Tässä Pieni ongelma
144       }
145       
146   }
147
148    //Aliohjelma aseella ampumiseen
149    void AmmuAseella(PlasmaCannon tykki)
150   {
151       PhysicsObject ammus = tykki.Shoot();
152
153       if (ammus != null)
154       {
155           ammus.Size *= 1;
156           
157           if (tykki == plasmaTykkiP1)
158           {
159               ammus.Color = Color.Red; // Pelaaja1 ammusten väri vaihdetaan punaiseksi
160           }   
161        }     
162   }
163
164}
Note: See TracBrowser for help on using the repository browser.