source: aleksi_p/pong/Peli.cs @ 53

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