source: sipi_o/Omapeli/Peli.cs @ 119

Revision 119, 5.4 KB checked in by sikajeov, 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 Omapeli
20{
21    public class Peli : PhysicsGame
22    {
23        //-----------------------------------------------
24        //Debuggaus hahmo
25        PhysicsObject dbHahmo;
26        PhysicsObject LUOTI;
27        //-----------------------------------------------
28
29        protected override void LoadContent()
30        {
31            ShowMouseCursor(true);
32            DEBUGROOM();
33            pLisaa();
34            pLiikuta();
35            //pHiiri();
36        }
37
38        void pLisaa()
39        {
40            //-----------------------------------------------
41            //Lisää pelaaja lopulliseen versioon tähän
42            //-----------------------------------------------
43        }
44
45        bool pHiiri(ControlEvent e)
46        {
47            Vector2D hiirenSijainti = Controls.Mouse.GetPositionOnWorld(Camera);
48            kaannaPelaajaa(dbHahmo, hiirenSijainti);
49            return false;
50        }
51
52        void kaannaPelaajaa(PhysicsObject pelaaja, Vector2D kohde)
53        {
54            Vector2D suunta = new Vector2D(kohde.X - dbHahmo.X, kohde.Y - dbHahmo.Y);
55            double kohdekulma = suunta.Angle;
56            pelaaja.Angle = new Angle(kohdekulma, false);
57        }
58
59        //-----------------------------------------------
60        //PELAAJAN LIIKUTUS YLEISESTi
61        void pLiikuta()
62        {
63            //-----------------------------------------------
64            //Debuggaushahmon (dbHahmo) liikutusta...
65            double pNopeus = 4.0; //dbHahmon nopeus...
66            Controls.Listen(Keys.W, ButtonPosition.Down, pLiikkuuY, "Pelaaja liikkuu ylös", dbHahmo, pNopeus);
67            Controls.Listen(Keys.S, ButtonPosition.Down, pLiikkuuY, "Pelaaja liikkuu alas", dbHahmo, -pNopeus);
68            Controls.Listen(Keys.D, ButtonPosition.Down, pLiikkuuX, "Pelaaja liikkuu oikealle", dbHahmo, pNopeus);
69            Controls.Listen(Keys.A, ButtonPosition.Down, pLiikkuuX, "Pelaaja liikkuu vasemmalle", dbHahmo, -pNopeus);
70            Controls.Listen(MouseButtons.Left, ButtonPosition.Down, 0.0, debugBullet);
71            Controls.Listen(MouseButtons.None, ButtonPosition.Irrelevant, 0.0, pHiiri);
72            //-----------------------------------------------
73        }
74       
75        //-----------------------------------------------
76        //PELAAJA LIIKKUU X-AKSELILLA (vasen, oikea)
77        //-----------------------------------------------
78        bool pLiikkuuX(ControlEvent e)
79        {
80            PhysicsObject dbHahmo = e.Parameter0.ToPhysicsObject();
81            double pSpeed = e.Parameter1.ToDouble();
82            double uusiX = dbHahmo.X + pSpeed;
83
84            if ((Level.Left < uusiX) && (uusiX < Level.Right))
85            {
86                dbHahmo.X = uusiX;
87            }
88            return false;
89        }
90
91        //-----------------------------------------------
92        //PELAAJA LIIKKUU Y-AKSELILLA (ylös, alas)
93        //-----------------------------------------------
94        bool pLiikkuuY( ControlEvent e )
95        {
96            PhysicsObject dbHahmo = e.Parameter0.ToPhysicsObject();
97            double pSpeed = e.Parameter1.ToDouble();
98            double uusiY = dbHahmo.Y + pSpeed;
99
100            if ((Level.Bottom < uusiY) && (uusiY < Level.Top))
101            {
102                dbHahmo.Y = uusiY;
103            }
104            return false;
105        }
106
107        bool debugBullet(ControlEvent e)//(double dbX, double dbY, double suunta)
108        {
109            IShape dbLuoti = Shapes.CreateCircle(2.0);
110            LUOTI = new PhysicsObject(5.0, dbLuoti);
111            double hahmoX = dbHahmo.X;
112            double hahmoY = dbHahmo.Y;
113            LUOTI.X = hahmoX;
114            LUOTI.Y = hahmoY;
115            LUOTI.Restitution = 0.2;
116            LUOTI.Color = Color.Red;
117           
118            Level.Objects.Add(LUOTI);
119            AddCollisionHandler(LUOTI, luotiKatoaa);
120
121            Vector2D impulssi = new Vector2D(3000.0, 0.0);
122            LUOTI.Hit(impulssi);
123
124            return false;
125        }
126
127        void luotiKatoaa(Collision collision)
128        {
129            PhysicsObject LUOTI = collision.Obj;
130            PhysicsObject seina = collision.Other;
131
132            if (seina == Level.RightBorder)
133            {
134                Level.Objects.Remove(LUOTI);
135            }
136
137        }
138
139        //-----------------------------------------------
140        //TESTIALUE PELAAJAN LIIKUTUKSEEN JA MUUHUN :)
141        //-----------------------------------------------
142        void DEBUGROOM()
143        {
144            Level.BackgroundColor = Color.LightGreen;
145
146
147            IShape dbPallo = Shapes.CreateRectangle(60.0, 40.0);
148            //IShape dbPallo = Shapes.CreateCircle(30.0);
149            dbHahmo = new PhysicsObject(20.0, dbPallo);
150            dbHahmo.X = 0.0;
151            dbHahmo.Y = 0.0;
152            dbHahmo.Restitution = 0.2;
153            dbHahmo.Color = Color.Black;
154
155            Level.Objects.Add(dbHahmo);
156            //-----------------------------------------------
157        }
158    }
159}
Note: See TracBrowser for help on using the repository browser.