source: 2011/31/PavelT/gee tee aa ssek/Peli.cs @ 2541

Revision 2541, 7.7 KB checked in by patammi, 12 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 Peli : PhysicsGame
10{
11    PhysicsObject olio;
12    Image olionKuva = LoadImage("Kari");
13
14    PhysicsObject sampodiego;
15    Image olionkuva = LoadImage("Kari");
16    AssaultRifle pyssy;
17    PhysicsObject vihu;
18    Image vihunKuva = LoadImage("vihu");
19    List<Label> valikonKohdat;
20
21
22
23
24    public override void Begin()
25    {
26        Valikko();
27
28
29    }
30    void Valikko()
31    {
32        ClearAll();
33        valikonKohdat = new List<Label>();
34
35        Label kohta1 = new Label("Aloita uusi peli");
36        kohta1.Position = new Vector(0, 40);
37        valikonKohdat.Add(kohta1);
38
39        Label kohta2 = new Label("Lopeta");
40        kohta2.Position = new Vector(0, -40);
41        valikonKohdat.Add(kohta2);
42
43        foreach (Label valikonKohta in valikonKohdat)
44        {
45            Add(valikonKohta);
46        }
47
48        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
49        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
50        ControllerOne.Listen(Button.B, ButtonState.Down, Exit, "");
51        ControllerOne.Listen(Button.A, ButtonState.Down, AloitaPeli, "");
52        Mouse.IsCursorVisible = true;
53        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
54        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
55    }
56
57    void ValikossaLiikkuminen(AnalogState hiirenTila)
58    {
59        foreach (Label kohta in valikonKohdat)
60        {
61            if (Mouse.IsCursorOn(kohta))
62            {
63                kohta.TextColor = Color.Red;
64            }
65            else
66            {
67                kohta.TextColor = Color.Black;
68            }
69
70        }
71    }
72
73
74
75
76
77    void AloitaPeli()
78    {
79        ClearAll();
80        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
81        Timer ajastin = new Timer();
82        ajastin.Interval = 0.1;
83        ajastin.Timeout += lisaavihu;
84        ajastin.Start();
85
86
87        olio = luokari();
88        olio.X = 20;
89        olio.Y = 10;
90        Add(olio);
91        sampodiego = luosampodiego();
92        sampodiego.X = 200;
93        sampodiego.Y = -60;
94        Add(sampodiego);
95
96
97        // TODO: Kirjoita ohjelmakoodisi tähän
98
99        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
100        Level.BackgroundColor = new Color(150, 150, 150);
101        Camera.Follow(olio);
102        TileMap ruudut = TileMap.FromLevelAsset("kenttä");
103        ruudut.SetTileMethod('=', LuoPalikka);
104        ruudut.Execute(150, 200);
105
106        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
107        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
108        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
109        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
110        Keyboard.Listen(Key.A, ButtonState.Down, käännäpelaajaa, null, -10.0);
111        Keyboard.Listen(Key.A, ButtonState.Released, käännäpelaajaa, null, 0.0);
112        Keyboard.Listen(Key.D, ButtonState.Down, käännäpelaajaa, null, 10.0);
113        Keyboard.Listen(Key.D, ButtonState.Released, käännäpelaajaa, null, 0.0);
114        Keyboard.Listen(Key.Space, ButtonState.Down, ammu, null);
115        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1,
116  LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.");
117        ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.1,
118  Käännäpelaajaa, "Käännä pelaajaa tattia pyörittämällä.");
119        ControllerOne.Listen(Button.B, ButtonState.Down, ammu, null);
120        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu");
121        ControllerOne.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
122        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1,
123LiikutaPelaajaa2, "Liikuta pelaajaa tattia pyörittämällä.");
124        ControllerTwo.ListenAnalog(AnalogControl.RightStick, 0.1,
125  Käännäpelaajaa2, "Käännä pelaajaa tattia pyörittämällä.");
126
127
128        Camera.ZoomFactor = (0.3);
129        olio.AngularVelocity = 5.0;
130
131        lisäävihollinen(Vector.Zero, 200, 100);
132       
133
134    }
135
136    void LiikutaPelaajaa(AnalogState tatinTila)
137    {
138        Vector tatinAsento = tatinTila.StateVector;
139        olio.Push(tatinAsento * 1000);
140
141
142    }
143    void Käännäpelaajaa(AnalogState tatinTila)
144    {
145        Vector tatinAsento = tatinTila.StateVector;
146        olio.AngularVelocity = tatinAsento.X * 15;
147    }
148    void LiikutaPelaajaa2(AnalogState tatinTila)
149    {
150        Vector tatinAsento = tatinTila.StateVector;
151        olio.Push(tatinAsento * 1000);
152    }
153    void Käännäpelaajaa2(AnalogState tatinTila)
154    {
155        Vector tatinAsento = tatinTila.StateVector;
156        olio.AngularVelocity = tatinAsento.X * 15;
157    }
158
159
160
161
162
163    void ammu()
164    {
165        pyssy.Shoot();
166
167    }
168
169    void käännäpelaajaa(double kulmanopeus)
170    {
171        olio.AngularVelocity = kulmanopeus;
172
173    }
174
175    void LiikutaPelaajaa(Vector vektori)
176    {
177        olio.Push(vektori);
178    }
179
180
181    void LuoPalikka(Vector paikka, double leveys, double korkeus)
182    {
183        PhysicsObject taso = PhysicsObject.CreateStaticObject(
184          leveys, korkeus, Shape.Rectangle);
185        taso.Position = paikka;
186        //taso.Image = groundImage;
187        Add(taso);
188    }
189
190    PhysicsObject luokari()
191    {
192        PhysicsObject olio = new PhysicsObject(100, 50);
193        olio.Image = olionKuva;
194        olio.Size = new Vector(100.0, 150.0);
195        olio.LinearDamping = 0.950;
196        olio.AngularDamping = 0.8;
197        pyssy = new AssaultRifle(60, 20);
198        olio.Add(pyssy);
199        pyssy.Angle += Angle.FromDegrees(5);
200        pyssy.InfiniteAmmo = true;
201        pyssy.ProjectileCollision = LuotiOsuu;
202
203
204
205        return olio;
206
207    }
208    void LuotiOsuu(PhysicsObject luoti, PhysicsObject kohde)
209    {
210        luoti.Destroy();
211    }
212
213    PhysicsObject luosampodiego()
214    {
215        PhysicsObject sampodiego = new PhysicsObject(100, 50);
216        sampodiego.Image = olionKuva;
217        sampodiego.Size = new Vector(100.0, 150);
218        sampodiego.LinearDamping = 0.950;
219        sampodiego.AngularDamping = 0.8;
220        AssaultRifle pyssy = new AssaultRifle(50, 50);
221        pyssy.Angle += Angle.FromDegrees(5);
222        pyssy.InfiniteAmmo = false;
223        pyssy.ProjectileCollision = LuotiOsuu;
224        sampodiego.Add(pyssy);
225
226
227
228        //Add (sampodiego);
229
230        return sampodiego;
231    }
232    void lisäävihollinen(Vector sijainti, double leveys, double korkeus)
233    {
234        PhysicsObject vihu = new PhysicsObject(100.0, 150);
235        vihu.Image = vihunKuva;
236        vihu.LinearDamping = 0.950;
237        vihu.AngularDamping = 0.8;
238        FollowerBrain seuraajaAivot = new FollowerBrain(olio);
239        seuraajaAivot.Speed = 100;
240        seuraajaAivot.FollowAlways = true;
241        seuraajaAivot.TargetCloseDistance = -1;
242        seuraajaAivot.StopWhenTargetClose = false;
243        seuraajaAivot.Active = true;
244        seuraajaAivot.Target = olio;
245        vihu.Brain = seuraajaAivot;
246
247
248        vihu.Position = sijainti;
249       
250       
251        Add(vihu);
252    }
253    void lahellaVihollista(object lahettajaAivot, EventArgs e)
254    {
255        //pallo.Color = Color.Red;
256    }
257    void lisaavihu()
258    {
259        lisäävihollinen(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top)), 0, 0); 
260
261
262    }
263
264
265
266
267}
Note: See TracBrowser for help on using the repository browser.