source: henna_s/pong/Peli.cs @ 38

Revision 38, 2.9 KB checked in by hemasark, 12 years ago (diff)

maanantain iltapäivätyöt!!

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 pong
20{
21    public class Peli : PhysicsGame
22    {
23        PhysicsObject LuoMaila(double x, double y,Level kentta)
24        {
25            IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0);
26            PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio);
27            maila.X = x;
28            maila.Y = y;
29            maila.Restitution = 1.0;
30            kentta.Objects.Add(maila); 
31           
32            return maila;
33        }
34
35
36        PhysicsObject pallo;
37        PhysicsObject maila1;
38        PhysicsObject maila2;
39
40        protected override void LoadContent()
41        {
42            Level = LuoKentta();
43            maila1 = LuoMaila(Level.Left + 20.0, 0.0, Level);
44            maila2 = LuoMaila(Level.Right - 20.0, 0.0, Level);
45            AsetaOhjaimet();
46            AloitaPeli();
47
48        } 
49
50
51        Level LuoKentta()
52        {
53            Level kentta = new Level(this);
54            kentta.BackgroundColor = Color.Black;
55
56            IShape ympyra = Shapes.CreateCircle(20.0);
57            pallo = new PhysicsObject(10.0, ympyra);
58            pallo.X = -200.0;
59            pallo.Y = 0.0;
60            pallo.Restitution = 1.0;
61            kentta.Objects.Add(pallo);
62
63           
64            kentta.CreateBorder(1.0, false);
65
66            return kentta;
67
68        }
69
70        void AloitaPeli()
71        {
72            Vector2D impulssi = new Vector2D(2000.0, 0.0);
73            pallo.Hit(impulssi);
74
75        }
76
77        void AsetaOhjaimet()
78        {
79            Controls.Listen(Keys.A, ButtonPosition.Down, LiikutaMailaa, "Liikuta mailaa ylös", maila2,500);
80            Controls.Listen(Keys.Z, ButtonPosition.Down, LiikutaMailaa, "Liikuta mailaa alas", maila2,-500);
81
82            Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaa, "Liikuta mailaa ylös", maila1,500); 
83            Controls.Listen(Keys.Down, ButtonPosition.Down, LiikutaMailaa, "Liikuta mailaa alas", maila1,-500);
84        }
85
86       
87       
88
89        bool LiikutaMailaa(ControlEvent e)
90        {
91            PhysicsObject maila = e.Parameter0.ToPhysicsObject();
92            double nopeus = e.Parameter1.ToDouble();
93            double sekuntejaKulunut = e.Time.ElapsedGameTime.TotalSeconds;
94           
95           
96                maila.Y += nopeus * sekuntejaKulunut;
97
98           
99
100
101
102            return false;
103        }
104
105
106       
107    }       
108}
Note: See TracBrowser for help on using the repository browser.