source: topias_k/Square Defence beta/Peli.cs @ 301

Revision 301, 4.5 KB checked in by tovakosk, 12 years ago (diff)

oma peli alku

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 Square_defence_beta
20{
21    public class Peli : PhysicsGame
22    {
23        PhysicsObject vihu;
24        PhysicsObject waypoint;
25        PhysicsObject reitti;
26
27        int vihujenmaara = 0;
28        Timer ajastin;
29
30
31        protected override void LoadContent()
32        {
33            Level = Luokentta();
34
35
36            ajastin = new Timer();
37            ajastin.Interval = 0.6;
38            ajastin.Trigger += new Timer.TriggerHandler(LisaaVihut);
39            AddTimer(ajastin);
40
41            ajastin.Start();
42
43
44
45        }
46
47        Level Luokentta()
48        {
49            Level kentta = new Level(this);
50            kentta.BackgroundColor = Color.Aqua;
51            return kentta;
52
53        }
54        void LisaaVihut(Timer sender)
55        {
56
57            IShape ympyra = Shapes.CreateCircle(15.0);
58            vihu = new PhysicsObject(10.0, ympyra);
59            vihu.X = -700;
60            vihu.Y = 100;
61            Level.Objects.Add(vihu);
62
63            Vector2D impulssi = new Vector2D(800.0, 0.0);
64            vihu.Hit(impulssi);
65            vihujenmaara++;
66            if (vihujenmaara >= 10)
67            {
68                ajastin.Stop();
69            }
70            AddCollisionHandler(vihu, Tultiinwaypointille);
71
72            waypoint = luoWaypoint(-500, 100, 1);
73            waypoint = luoWaypoint(-500, 450, 2);
74            waypoint = luoWaypoint(-250, 450, 3);
75            waypoint = luoWaypoint(-250, 0, 4);
76            waypoint = luoWaypoint(-400, 0, 3);
77            waypoint = luoWaypoint(-400, -300, 2);
78            waypoint = luoWaypoint(0, -300, 1);
79            waypoint = luoWaypoint(0, 100, 2);
80            waypoint = luoWaypoint(100, 100, 1);
81            waypoint = luoWaypoint(100, 300, 4);
82            waypoint = luoWaypoint(20, 300, 1);
83            waypoint = luoWaypoint(20, 500, 2);
84            waypoint = luoWaypoint(550, 500, 3);
85            waypoint = luoWaypoint(550, 0, 4);
86            waypoint = luoWaypoint(300, 0, 3);
87            waypoint = luoWaypoint(300, -400, 4);
88            waypoint = luoWaypoint(50, -400, 3);
89
90            reitti = luoreitti(-600, 100, 200, 10);
91       
92       
93        }
94
95        void Tultiinwaypointille(Collision c)
96        {
97            if (c.Other.Mass == 1)
98            {
99                c.Obj.Velocity = new Vector2D(0, 0);
100                Vector2D impulssi01 = new Vector2D(0, 2000);
101                c.Obj.Hit(impulssi01);
102                return;
103            }
104
105            if (c.Other.Mass == 2)
106            {
107                c.Obj.Velocity = new Vector2D(0, 0);
108                Vector2D impulssi01 = new Vector2D(2000, 0);
109                c.Obj.Hit(impulssi01);
110                return;
111            }
112            if (c.Other.Mass == 3)
113            {
114                c.Obj.Velocity = new Vector2D(0, 0);
115                Vector2D impulssi01 = new Vector2D(0, -2000);
116                c.Obj.Hit(impulssi01);
117                return;
118            }
119            if (c.Other.Mass == 4)
120            {
121                c.Obj.Velocity = new Vector2D(0, 0);
122                Vector2D impulssi01 = new Vector2D(-2000, 0);
123                c.Obj.Hit(impulssi01);
124                return;
125            }
126        }
127
128        private PhysicsObject luoWaypoint(int x, int y, double mass)
129        {
130            IShape wp = Shapes.CreateRectangle(2.0, 2.0);
131            PhysicsObject waypoint = new PhysicsObject(mass, wp);
132            waypoint.IgnoresCollisionResponse = true;
133            waypoint.Visible = true;
134
135            waypoint.X = x;
136            waypoint.Y = y;
137            Level.Objects.Add(waypoint);
138            return waypoint;
139        }
140        private PhysicsObject luoreitti(int x, int y, double u, double i)
141        {
142            IShape rei = Shapes.CreateRectangle( u, i );
143            PhysicsObject reitti = new PhysicsObject( 1, rei );
144            reitti.IgnoresCollisionResponse = true;
145            reitti.Visible = true;
146
147            reitti.X = x;
148            reitti.Y = y;
149            Level.Objects.Add(reitti);
150            return reitti;
151        }
152
153    }
154}
Note: See TracBrowser for help on using the repository browser.