source: aki_s/Pong/Peli.cs @ 28

Revision 28, 3.2 KB checked in by akjuhesa, 11 years ago (diff)

Pongi liikkuvilla mailoilla, tosin pallo pysähtyy jos menee mailalla läpi

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