source: joonas_s/Tankkipeli1/Peli.cs @ 418

Revision 418, 9.0 KB checked in by josojakk, 11 years ago (diff)
Line 
1#region Usings
2using System;
3using System.Collections.Generic;
4using System.Linq;
5using Microsoft.Xna.Framework;
6using Microsoft.Xna.Framework.Audio;
7using Microsoft.Xna.Framework.Content;
8using Microsoft.Xna.Framework.Graphics;
9using Microsoft.Xna.Framework.Input;
10using Microsoft.Xna.Framework.Media;
11using Jypeli;
12using Jypeli.ScreenObjects;
13using Jypeli.Assets;
14using AdvanceMath;
15using Physics2DDotNet;
16using Physics2DDotNet.Shapes;
17#endregion
18
19namespace Tankkipeli1
20{
21    public class Peli : PhysicsGame
22    {
23        PhysicsObject runko;
24        PhysicsObject pyora1;
25        PhysicsObject pyora2;
26        public  double MaxTorque = -20000000;
27        public  double MaxTorque1 = 20000000;
28       
29        PhysicsObject kuski;
30        PhysicsObject hyppyri;
31        PhysicsObject maa;
32        int kentannumero = 1;
33        int jyrkkyys = 100;
34        HighScoreList lista;
35
36        protected override void LoadContent()
37        {
38            MessageDisplay.Add("Tervetuloa pelaamaan Ultimate mopoa. Mopoa on juuri viritetty, joten aja varovasti");
39
40            lista = HighScoreList.LoadOrCreate(this, "topten.txt", 10);
41            alustakentta();
42                     
43            Controls.Listen(Keys.Left, ButtonPosition.Down, aja, "Liiku vasemmalle",MaxTorque1);
44            Controls.Listen(Keys.Right, ButtonPosition.Down, aja, "Liiku oikealle", MaxTorque);
45            //Controls.Listen(Keys.Up, ButtonPosition.Down, lisaavauhtia, "vaihdetta ylös", MaxTorque1);
46           
47            Controls.Listen(Keys.Enter, ButtonPosition.Down, aloitauusikentta, "Aloita peli alusta");
48            Controls.Listen(Buttons.LeftTrigger, ButtonPosition.Down, aja, "Liiku vasemmalle", MaxTorque1);
49            Controls.Listen(Buttons.RightTrigger, ButtonPosition.Down, aja, "Liiku oikealle", MaxTorque);
50            Controls.Listen(Buttons.A, ButtonPosition.Down, aloitauusikentta, "Aloita peli alusta");
51           
52            //Controls.Listen( Keys.Up, ButtonPosition.Down, liikutaPelaajaa, null, new Vector2D( 0, 1000 ) );
53            //Controls.Listen( Keys.Down, ButtonPosition.Down, liikutaPelaajaa, null, new Vector2D( 0, -1000 ) );
54
55
56           
57            }
58       
59       
60
61        /*private bool liikutaPelaajaa( ControlEvent e )
62        {
63            runko.Push(e.Parameter0.ToVector2D());+
64            return false;
65        }*/
66
67
68        /*bool lisaavauhtia(ControlEvent e)
69        {
70            MaxTorque1 = MaxTorque1 + 1000000;
71            return false;
72        }*/
73        void alustakentta()
74        {
75            Level = new Level(this, 8000, Level.Height);
76           
77            Camera.StayInLevel = true;
78            lista.Hide();
79            Level.Background.Image = Content.Load<Texture2D>("tausta");
80            Level.Background.FitToLevel(Level);
81           
82            MessageDisplay.Add("kentta"+kentannumero);
83           
84            runko = new PhysicsObject(100, Shapes.CreateCircle(30));
85            Level.CreateBorder();
86            Gravity = new Vector2D(0, -150);
87
88            pyora1 = new PhysicsObject(500, Shapes.CreateCircle(16));
89            pyora1.AngularDamping = 0.8;
90            pyora2 = new PhysicsObject(500, Shapes.CreateCircle(16));
91            pyora2.AngularDamping = 0.8;
92            kuski = new PhysicsObject(100, Shapes.CreateCircle(25));
93
94            Camera.Follow(runko);
95           
96            LuoBensakanisteri(-200,100);
97            LuoTehopaketti(300, 100);
98            LuoMaali(Level.Right-500, 100);
99            for (int i = 0; i < kentannumero-1; i++)
100            {
101                Luohyppyri(RandomGen.NextDouble(Level.Left+ 500,Level.Right-500), 500);
102
103            }
104
105            for (int h = 0; h < kentannumero; h++)
106            {
107                LuoTehopaketti(RandomGen.NextDouble(Level.Left, Level.Right - 500), 100);
108
109            }
110            runko.X = Level.Left + 200;
111            pyora1.X = Level.Left + 200;
112            pyora2. X = Level.Left + 200;
113            kuski.X = Level.Left + 200;
114            runko.Y = Level.Bottom + 400;
115            pyora1.Y = Level.Bottom + 400;
116            pyora2.Y = Level.Bottom + 400;
117            kuski.Y = Level.Bottom + 400 ;
118           
119            Level.Objects.Add(runko);
120            Level.Objects.Add(pyora1);
121            Level.Objects.Attach(runko, new Vector2D(-27,-14), pyora1, new Vector2D(0,0), 0.01);
122            Level.Objects.Add(pyora2);
123            Level.Objects.Attach(runko, new Vector2D(27, -22), pyora2, new Vector2D(0, 0), 0.05);
124            Level.Objects.Add(kuski);
125            Level.Objects.Attach(runko, new Vector2D(4, 20), kuski, new Vector2D(0, 0), 0.0);
126   
127            runko.Texture = Content.Load<Texture2D>("kokeilumopo2");
128            pyora1.Texture = Content.Load<Texture2D>("kokeilumopo6");
129            pyora2.Texture = Content.Load<Texture2D>("kokeilumopo6");
130            kuski.Texture = Content.Load<Texture2D>("kuski");
131
132            AddCollisionHandler(kuski, tormaamaahan);
133
134            // Luodaan maasto
135            maa=Level.CreateGround(100, jyrkkyys += 50, 15, Color.LightGreen);
136           
137        }
138        void Luohyppyri(double X, double Y)
139    {
140            IShape hyppyri = Shapes.CreateFromTexture(Content.Load<Texture2D>("hyppyri1"), new Vector2D(300, 100), 1);
141            PhysicsObject hyppyri2 = new PhysicsObject(100, hyppyri);
142            hyppyri2.Texture = Content.Load<Texture2D>("hyppyri1");
143            Level.Objects.Add(hyppyri2);
144
145            hyppyri2.X = X;
146            hyppyri2.Y = Y;
147       
148    }
149
150        bool aja(ControlEvent e)
151        {
152            double vaanto = e.Parameter0.ToDouble();
153            pyora1.Body.ApplyTorque(vaanto);
154            pyora2.Body.ApplyTorque(vaanto);
155           
156           
157            return false;
158        }
159        bool aloitauusikentta(ControlEvent e)
160        {
161            alustakentta();
162            return false;
163        }
164       
165
166        void LuoBensakanisteri(double X, double Y)
167        {
168            IShape bensaa = Shapes.CreateFromTexture(Content.Load<Texture2D>("bensakanisteri"), new Vector2D(30, 30), 1);
169            PhysicsObject bensakanisteri1 = new PhysicsObject(10,bensaa );
170            Level.Objects.Add(bensakanisteri1);
171            bensakanisteri1.Texture = Content.Load<Texture2D>("bensakanisteri");
172            AddCollisionHandler(bensakanisteri1, bensaa2);
173
174           
175            bensakanisteri1.X = X;
176            bensakanisteri1.Y = Y;
177                   
178        }
179        void bensaa2(Collision c1)
180    {
181        if (c1.Other == pyora2)
182        {
183        MessageDisplay.Add(" Kas lisää bensaa");
184        c1.Obj.Destroy();
185
186
187        }
188    }
189        void LuoTehopaketti(double X, double Y)
190        {
191            IShape tehopaketti = Shapes.CreateFromTexture(Content.Load<Texture2D>("tehopaketti"), new Vector2D(30, 30), 1);
192            PhysicsObject tehopaketti1 = new PhysicsObject(10,tehopaketti);
193            Level.Objects.Add(tehopaketti1);
194            tehopaketti1.Texture = Content.Load<Texture2D>("tehopaketti");
195            AddCollisionHandler(tehopaketti1, lisaateho);
196
197            tehopaketti1.X = X;
198            tehopaketti1.Y = Y;
199        }
200        void lisaateho(Collision collision)
201        {
202            if (collision.Other == pyora2 || collision.Other == pyora1 || collision.Other == runko || collision.Other == kuski)
203            {
204                MaxTorque1 = MaxTorque1 + 10000;
205                collision.Obj.Destroy();
206                MessageDisplay.Add(" Sait lisää tehoa");
207
208                Controls.Listen(Keys.Right, ButtonPosition.Down, aja, "Liiku oikealle", MaxTorque);
209            }
210        }
211        void LuoMaali(double X, double Y)
212        {
213            IShape maali = Shapes.CreateFromTexture(Content.Load<Texture2D>("maali"), new Vector2D(250, 250), 1);
214            PhysicsObject maali1 = new PhysicsObject(10, maali);
215            Level.Objects.Add(maali1);
216            maali1.Texture = Content.Load<Texture2D>("maali");
217            AddCollisionHandler(maali1, lopetus);
218         
219            maali1.X = X;
220            maali1.Y = Y;
221           
222        }
223       
224        void lopetus(Collision collision)
225        {
226            if (collision.Other == pyora2 || collision.Other == pyora1 || collision.Other == runko || collision.Other == kuski)
227            {
228                MessageDisplay.Add("Loistavaa!");
229                kentannumero += 1;
230                jyrkkyys += 50;
231                MessageDisplay.Clear();
232                alustakentta();
233            }
234           
235        }
236        void tormaamaahan(Collision c)
237        {
238            if (c.Other == maa)
239            {
240                MessageDisplay.Add("Pystyt varmasti parempaan");
241                jyrkkyys = 100;
242                MaxTorque1 = 20000000;
243                Level = new Level(this);
244                lista.Show(kentannumero);
245                kentannumero = 0;
246
247                //Listalle(kentannumero);
248            }
249        }
250
251       
252        /*void Listalle(int i)
253        {
254        }*/
255
256
257
258
259
260
261
262
263
264    }
265}
Note: See TracBrowser for help on using the repository browser.