source: sipi_o/Omapeli/Peli.cs @ 146

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