source: 2009/aki_m/pong/Peli.cs @ 9826

Revision 61, 3.4 KB checked in by akmimiko, 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            LisaaLaskurit();
33            AloitaPeli();
34        }
35       
36
37        void AloitaPeli()
38        {
39        }
40
41        Level LuoKentta()
42        {
43            Vector2D impulssi = new Vector2D(15000.0, 0.0);
44
45            Level kentta = new Level(this);
46            kentta.BackgroundColor = Color.Black;
47            kentta.CreateBorder(1.0, false);
48
49
50            IShape ympyra = Shapes.CreateRectangle(50.8, 50.8);
51            PhysicsObject pallo = new PhysicsObject(10.0, ympyra);
52            pallo.Hit(impulssi);
53            pallo.Restitution = 5.0;
54            kentta.BackgroundColor = Color.Red;
55            pallo.Color = Color.Black;
56            kentta.Objects.Add(pallo);
57
58
59            maila1 = LuoMaila(kentta.Left + 20.0, 0.0, kentta);
60            maila2 = LuoMaila(kentta.Right - 20.0, 0.0, kentta);
61            maila1.Color = Color.Black;
62            maila2.Color = Color.Black;
63            return kentta;
64        }
65
66        void LisaaLaskurit()
67        { 
68        }
69
70        PhysicsObject LuoMaila(double x, double y, Level level)
71        {
72            IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0);
73            PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio);
74            maila.X = x;
75            maila.Y = y;
76            maila.Restitution = 1.0;
77            level.Objects.Add(maila);
78            return maila;
79        }
80
81
82        bool LiikutaMailaaYlos(ControlEvent e)
83        {
84            PhysicsObject maila = e.Parameter0.ToPhysicsObject();
85            double sekuntejaKulunut = e.Time.ElapsedGameTime.TotalSeconds;
86            if (maila.Y < Level.Top)
87            {
88                maila.Y += 10.0;
89            }
90            return false;
91
92
93
94        }
95
96        void AsetaOhjaimet()
97        {
98            Controls.Listen(Keys.A, ButtonPosition.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1);
99            Controls.Listen(Keys.Z, ButtonPosition.Down, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1);
100
101            Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2);
102
103            Controls.Listen(Keys.Down, ButtonPosition.Down, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2);
104           
105        }
106
107
108
109       
110
111
112        bool LiikutaMailaaAlas(ControlEvent e)
113        {
114            PhysicsObject maila = e.Parameter0.ToPhysicsObject();
115
116            if (maila.Y > Level.Bottom)
117            {
118                maila.Y -= 10.0;
119            }
120            return false;
121
122           
123       
124
125
126        }
127       
128       
129               
130        }
131
132    }
133
134
135
136
137
138
139
Note: See TracBrowser for help on using the repository browser.