source: 2012/26/TuomasL/Shooter/Shooter/Shooter/Shooter.cs @ 3419

Revision 3419, 7.1 KB checked in by tusalain, 9 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 Shooter : PhysicsGame {
10
11    PhysicsObject pelaaja;
12    PhysicsObject maptör;
13
14    Image zombi = LoadImage("zombi");
15    Image bullet = LoadImage("bullet");
16    Image mapimg = LoadImage("map");
17    Image mapimg2 = LoadImage("maptör");
18    Image pistolukko = LoadImage("pistolukko");
19    Image sniperukko = LoadImage("sniperukko");
20    Image koneukko = LoadImage("koneukko");
21
22    Vector znopeus = new Vector(200, 0);
23    int ase = 1;
24    bool konekivääri = false;
25    bool snipu = false;
26    int raha = 0;
27    int tapot = 0;
28    double aika = 0;
29    double pnopeus = 500;
30    double knopeus = 100;
31    double snopeus = 1000;
32    bool pammu = true;
33    bool kammu = true;
34    double lzombei = 0;
35    double spawnaika = 100;
36    int spawnataan = 10000000;
37    int spawnat = 10000000;
38    int peli = 0;
39    int enut = 100;
40    double hitaika = 500;
41    int kvoima = 3;
42    int pvoima = 7;
43    int svoima = 15;
44    bool lolmode = true;
45    int lvl = 1;
46    int jäljellä = 0;
47
48    public override void Begin() {
49
50        Camera.ZoomToLevel(0);
51
52        pelaaja = new PhysicsObject(LoadImage("pistolukko"));
53        pelaaja.IgnoresCollisionResponse = true;
54        pelaaja.AbsolutePosition = new Vector(300, 0);
55        Add(pelaaja, 1);
56
57        GameObject map = new GameObject(mapimg);
58        Add(map, 0);
59
60        maptör = new PhysicsObject(mapimg2);
61        maptör.Collided += TörmäysMap;
62        maptör.MakeStatic();
63
64        näppäimet();
65    }
66
67    protected override void Update(Time time) {
68
69        base.Update(time);
70
71        switch(peli) {
72
73            case 0:
74
75                if (time.SinceStartOfGame.TotalMilliseconds > aika + pnopeus | ase == 1 | pammu == true) {
76
77                    aika = time.SinceStartOfGame.TotalMilliseconds;
78                    pammu = true;
79
80                }
81                else if (time.SinceStartOfGame.TotalMilliseconds > aika + knopeus | ase == 2 | kammu == true) {
82
83                    aika = time.SinceStartOfGame.TotalMilliseconds;
84                    kammu = true;
85                }
86                else if (time.SinceStartOfGame.TotalMilliseconds > aika + snopeus | ase == 3 | pammu == true) {
87
88                    aika = time.SinceStartOfGame.TotalMilliseconds;
89                    pammu = true;
90                }
91
92                if (spawnataan != 0) {
93
94                    if (time.SinceStartOfGame.TotalMilliseconds > lzombei + spawnaika) {
95
96                        UusZombi();
97
98                        lzombei = time.SinceStartOfGame.TotalMilliseconds;
99                    }
100                }
101                else if (jäljellä == 0) peli = 1;
102
103                foreach (PhysicsObject obj in GetObjectsWithTag("zombi")) {
104
105                    if (obj.Velocity == new Vector(0, 0)) {
106
107                        if (time.SinceStartOfGame.TotalMilliseconds > obj.aika + hitaika) {
108
109                            enut -= 5;
110                        }
111                    }
112
113                    if (obj.X > 500) obj.Destroy();
114
115                    if (obj.hp < 1) {
116
117                        obj.Destroy();
118                        tapot++;
119                    }
120                }
121
122                foreach (PhysicsObject obj in GetObjectsWithTag("pati")) {
123
124                    if (obj.X < -600 | obj.X > 600 | obj.Y < -400 | obj.Y > 400) {
125
126                        obj.Destroy();
127                    }
128                }
129
130                MessageDisplay.Add("Tapot: " + tapot + " " + "Level " + lvl);
131
132                break;
133            case 1:
134
135                peli = 0;
136                spawnataan = (int)(spawnat + spawnat * 1.5);
137                spawnat = spawnataan;
138                lvl++;
139
140                break;
141        }
142    }
143
144    void näppäimet() {
145
146        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Pistooli, "");
147        Mouse.Listen(MouseButton.Left, ButtonState.Down, Konekivääri, "");
148        Keyboard.Listen(Key.D1, ButtonState.Pressed, AseenVaihto, "", 1);
149        Keyboard.Listen(Key.D2, ButtonState.Pressed, AseenVaihto, "", 2);
150        Keyboard.Listen(Key.D3, ButtonState.Pressed, AseenVaihto, "", 3);
151
152        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
153        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
154    }
155
156    void UusZombi() {
157
158        PhysicsObject obj = new PhysicsObject(zombi);
159        obj.Position = new Vector(-550, RandomGen.NextDouble(-350,350));
160        obj.Velocity = znopeus;
161        if (lolmode == false) obj.MakeStatic();
162        obj.Tag = "zombi";
163        obj.hp = 50;
164        Add(obj, 1);
165        spawnataan--;
166        jäljellä++;
167    }
168
169    void Konekivääri() {
170
171        if (ase == 2 & kammu == true) {
172
173            PhysicsObject pati = new PhysicsObject(bullet);
174            pati.Position = pelaaja.Position + new Vector(-25, 0);
175            pati.Angle = Mouse.PositionOnWorld.Angle;
176            pati.Velocity = Mouse.PositionOnWorld;
177            pati.Velocity = pati.Velocity.Normalize() * 1000;
178            pati.Collided += PatiOsui;
179            pati.hp = kvoima;
180            pati.Tag = "pati";
181            Add(pati, 1);
182        }
183    }
184
185    void Pistooli() {
186
187        if (ase != 2 & pammu == true) {
188
189            PhysicsObject pati = new PhysicsObject(bullet);
190            pati.Position = pelaaja.Position + new Vector(-25, 0);
191            pati.Angle = Mouse.PositionOnWorld.Angle;
192            pati.Velocity = Mouse.PositionOnWorld;
193            pati.Velocity = pati.Velocity.Normalize() * 1000;
194            pati.Collided += PatiOsui;
195            pati.Tag = "pati";
196            Add(pati, 1);
197
198            if (ase == 1) pati.hp = pvoima;
199            else pati.hp = svoima;
200        }
201    }
202
203    void AseenVaihto(int num) {
204
205        switch(num) {
206
207            case 1:
208
209                ase = num;
210                VaihdaAse();
211                break;
212            case 2:
213
214                    konekivääri = true;
215                    ase = num;
216                    VaihdaAse();
217                break;
218            case 3:
219
220                    snipu = true;
221                    ase = num;
222                    VaihdaAse();
223                break;
224        }
225    }
226
227    void VaihdaAse() {
228
229        switch (ase) {
230
231            case 1:
232
233                pelaaja.Image = pistolukko;
234                break;
235            case 2:
236
237                pelaaja.Image = koneukko;
238                break;
239            case 3:
240
241                pelaaja.Image = sniperukko;
242                break;
243        }
244    }
245
246    void TörmäysMap(IPhysicsObject mappi, IPhysicsObject kohde) {
247
248        if (kohde.Tag == "zombi") 
249            kohde.Velocity = new Vector(0, 0);
250    }
251
252    void PatiOsui(IPhysicsObject pati, IPhysicsObject kohde) {
253
254        if (kohde.Tag == "zombi") {
255
256            PhysicsObject p = pati as PhysicsObject;
257            PhysicsObject k = kohde as PhysicsObject;
258
259
260            pati.Destroy();
261            k.hp -= p.hp;
262        }
263    }
264}
Note: See TracBrowser for help on using the repository browser.