source: aapo_p/FysiikkaPeli2/Peli.cs @ 94

Revision 94, 7.4 KB checked in by aaalalpe, 12 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 Defendyourhouse
20{
21    //keskeneräiset:
22    //neliöistä luodaan rajat, koodi on pohjalla
23    //vaihtoehtoisesti tiilistä tehdään reunat(mieluisa vaihtoehto)
24    //laita oma hahmo kuntoon
25    //tornit, ja ampuminen kaikille
26    //päivien vaihtuminen ja vihollisten määrän kasvaminen ja ulkomuodon muuttuminen
27    //mahdollisesti myös pistelaskuri
28    //ota selvää miksi nelön luominen ei onnistu????
29    //miksi hahmo1 on ohjaus-aliohjelmissa "null"??????????????????????????????
30
31
32    public class Peli : PhysicsGame
33    {
34        public PhysicsObject neli;
35        public PhysicsObject nelio11;
36        public PhysicsObject hahmo1;
37        public PhysicsObject nelia;
38        public PhysicsObject tiili;
39        public PhysicsObject enemy1;
40        int[] vihollisenElamat;
41        public PhysicsObject tykkitorni;
42
43        public ListSelectionWindow menu;
44
45        protected override void LoadContent()
46        {
47            Menu();
48        }
49
50        void AsetaOhjaimet()
51        {
52            Controls.Listen(Keys.M, ButtonPosition.Down, menu2, "menu");
53            Controls.Listen(Keys.W, ButtonPosition.Down, ylös, "ylöspäin", hahmo1);
54            Controls.Listen(Keys.S, ButtonPosition.Down, alas, "alaspäin", hahmo1);
55            Controls.Listen(Keys.A, ButtonPosition.Down, vasemmalle, "vasemmalle", hahmo1);
56            Controls.Listen(Keys.D, ButtonPosition.Down, oikealle, "oikealle", hahmo1);
57            Controls.Listen(Keys.B, ButtonPosition.Down, ostovalikko, "osta",);
58            ShowMouseCursor(true);
59        }
60
61        // void tiili(double x, double y)
62        //  {
63        //      IShape tiili = Shapes.CreateRectangle(100.0, 100.0);
64        //      PhysicsObject.tiilet = PhysicsObject.CreateStaticObject(tiili);
65        //      tiilet.X = x;
66        //      tiilet.Y = y;
67        //      tiilet.Color = Color.Brown;
68        //  }
69        Boolean ostovalikko()
70        {
71            menu2 = new ListSelectionWindow(this);
72            menu2.AddItem("torni1").Clicked += new ScreenObject.ClickEventHandler(Buy);
73            Add(menu2);
74            return false;
75        }
76        void Buy(ScreenObject sender)
77        {
78            PhysicsObject d = tower1a(0, 0);
79            Controls.Listen(MouseButtons.Left, ButtonPosition.Irrelevant, 0.1, siirra, "siirtää tornia", d);
80            menu2.Close();
81        }
82        bool siirra(ControlEvent e)
83        {
84            Vector2D j = e.AnalogVector;
85            PhysicsObject torni = e.Parameter0 as PhysicsObject;
86            torni.Position = j;
87            return false;
88        }
89        Boolean Menu()
90        {
91            menu = new ListSelectionWindow(this);
92            menu.AddItem("lopeta").Clicked += new ScreenObject.ClickEventHandler(lopeta);
93            menu.AddItem("aloita").Clicked += new ScreenObject.ClickEventHandler(aloita);
94            menu.AddItem("osta").Clicked += new ScreenObject.ClickEventHandler(Buy);
95            Add(menu);
96
97            return false;
98        }
99
100        void lopeta(ScreenObject sender)
101        {
102            Exit();
103        }
104
105        void aloita(ScreenObject sender)
106        {
107            menu.Close();
108           
109            neliö();
110            int vihollistenMaara = 20;
111
112            vihollisenElamat = new int[vihollistenMaara];
113            for (int i = 0; i < vihollistenMaara; i++)
114            {
115                int a = i*50;
116                addenemy(a);
117                vihollisenElamat[i] = 100;
118            }
119
120            addhero();
121            AddCollisionHandler(enemy1, suuntaus1);
122            AsetaOhjaimet();
123        }
124
125        void addenemy(int x)
126        {
127            IShape nelio = Shapes.CreateRectangle(50.0, 50.0);
128            enemy1 = new PhysicsObject(10.0, nelio);
129            Texture2D joku = Content.Load<Texture2D>("enemy1");
130            enemy1.AnimatedTexture = AnimatedTexture.FromTexture2D(joku, 320, false);
131            Level.Objects.Add(enemy1);
132            enemy1.X = Level.Left - x;
133            enemy1.Y = 0;
134            enemy1.Restitution = 0.0;
135            Vector2D impulssi2 = new Vector2D(600.0, 0.0);
136            enemy1.Hit(impulssi2);
137        }
138
139        // void addtile()
140        // {
141        //   
142        // IShape tiili2 = Shapes.CreateRectangle(149.0, 131.0);
143        //tiili = PhysicsObject.CreateStaticObject(tiili2);
144        //Texture2D tiili = Content.Load<Texture2D>("tiili");
145
146        //}
147        void addhero()
148        {
149            IShape nelia = Shapes.CreateRectangle(50.0, 50.0);
150            hahmo1 = new PhysicsObject(10.0, nelia);
151            Texture2D hahmo = Content.Load<Texture2D>("hahmo1");
152            Level.Objects.Add(hahmo1);
153            hahmo1.X = Level.Right - 25;
154            hahmo1.Y = 0;
155        }
156        PhysicsObject tower1a(int x, int y)
157        {
158            IShape kuvio = Shapes.CreateRectangle(50.0, 50.0);
159            tykkitorni = PhysicsObject.CreateStaticObject(kuvio);
160            Texture2D kuviot = Content.Load<Texture2D>("tykkitorni1");
161            Level.Objects.Add(tykkitorni);
162            tykkitorni.X = x;
163            tykkitorni.Y = y;
164            return tykkitorni;
165        }
166
167        bool menu2(ControlEvent e)
168        {
169            Menu();
170
171            return false;
172        }
173
174        bool alas(ControlEvent e)
175        {
176            PhysicsObject hahmo = e.Parameter0.ToPhysicsObject();
177            hahmo.Y += -5.0;
178
179            return false;
180        }
181
182        bool ylös(ControlEvent e)
183        {
184            PhysicsObject hahmo = e.Parameter0.ToPhysicsObject();
185            hahmo.Y += 5.0;
186
187            return false;
188        }
189
190        bool oikealle(ControlEvent e)
191        {
192            PhysicsObject hahmo = e.Parameter0.ToPhysicsObject();
193            hahmo.X += 5.0;
194            return false;
195        }
196
197        bool vasemmalle(ControlEvent e)
198        {
199            PhysicsObject hahmo = e.Parameter0.ToPhysicsObject();
200            hahmo.X += -5.0;
201            return false;
202        }
203
204        bool LiikutaMailaaYlos(ControlEvent e)
205        {
206            PhysicsObject nelio3 = e.Parameter0.ToPhysicsObject();
207            nelio3.Y += 10.0;
208
209            return false;
210        }
211
212        void neliö()
213        {
214            IShape neliö22 = Shapes.CreateRectangle(50.0, 50.0);
215            neli = PhysicsObject.CreateStaticObject(neliö22);
216            neli.X = -100;
217            neli.Y = -25;
218            neli.Restitution = 1;
219            neli.Color = Color.Black;
220            neli.Angle = neli.Angle + Angle.Degrees(45);
221            Level.Objects.Add(neli);
222        }
223
224        void suuntaus1(Collision jotainko)
225        {
226            if (jotainko.Other == neli)
227            {
228                Vector2D impulssi3 = new Vector2D(0, 600);
229                jotainko.Other.Hit(impulssi3);
230            }
231        }
232    }
233}
234//nelio.Angle = nelio.Angle + Angle.Degrees(50);
235//           base.Update(gameTime);
Note: See TracBrowser for help on using the repository browser.