source: 2009/henri_t/Pong-oikea/Peli.cs @ 8566

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