source: jaana_j/pong/Peli.cs @ 225

Revision 225, 4.0 KB checked in by jaaannja, 11 years ago (diff)

mailat liikkuu

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        protected override void LoadContent()
28        {
29            Level = LuoKentta();
30            AsetaOhjaimet();
31            AloitaPeli();
32        }
33
34       
35            Level LuoKentta()
36        {
37            Level kentta = new Level(this);
38            kentta.BackgroundColor = Color.Green;
39
40            IShape ympyra = Shapes.CreateCircle(20.0);
41            pallo = new PhysicsObject(10.0, ympyra);
42            pallo.X = -200.0;
43            pallo.Y = 0.0;
44            pallo.Restitution = 1.0;
45            kentta.Objects.Add(pallo);
46           
47                maila1 = LuoMaila(kentta.Left + 20.0, 0.0, kentta);
48               maila2 = LuoMaila(kentta.Right - 20.0, 0.0, kentta);
49
50
51
52            kentta.CreateBorder(1.0, false);
53
54            return kentta;
55        }
56
57
58        void AloitaPeli()
59{
60       
61            Vector2D impulssi = new Vector2D(3000.0, 0.0);
62            pallo.Hit(impulssi);
63        }
64
65
66
67        PhysicsObject LuoMaila(double x, double y, Level kentta)
68        {
69            IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0);
70            PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio);
71            maila.X = x;
72            maila.Y = y;
73            maila.Restitution = 1.0;
74            kentta.Objects.Add(maila);
75            return maila;
76        }
77         
78
79        void AsetaOhjaimet()
80        {
81            Controls.Listen(Keys.A, ButtonPosition.Pressed, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1);
82            Controls.Listen(Keys.A, ButtonPosition.Released, PysaytaMaila, null, maila1);
83            Controls.Listen(Keys.Z, ButtonPosition.Pressed, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1);
84            Controls.Listen(Keys.Z, ButtonPosition.Released, PysaytaMaila, null, maila1);
85
86            Controls.Listen(Keys.Up, ButtonPosition.Pressed, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2);
87            Controls.Listen(Keys.Up, ButtonPosition.Released, PysaytaMaila, null, maila2);
88            Controls.Listen(Keys.Down, ButtonPosition.Pressed, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2);
89            Controls.Listen(Keys.Down, ButtonPosition.Released, PysaytaMaila, null, maila2);
90
91        }
92
93         bool LiikutaMailaaYlos( ControlEvent e )
94        {
95            PhysicsObject maila = e.Parameter0.ToPhysicsObject();
96            if ( maila.Y >= Level.Top )
97            {
98                maila.Velocity = Vector2D.Zero;
99                return false;
100            }
101
102            Vector2D nopeus = new Vector2D( 0, 200 );
103            maila.Velocity = nopeus;
104            return false;
105        }
106
107       
108           
109    }
110 
111            }
112
113            Vector2D nopeus = new Vector2D( 0, 200 );
114            maila.Velocity = nopeus;
115
116            }
117
118
119            return false;
120        }
121
122
123         bool PysaytaMaila( ControlEvent e )
124        {
125            PhysicsObject maila = e.Parameter0.ToPhysicsObject();
126            maila.Velocity = Vector2D.Zero;
127            return false;
128
129        }
130         bool LiikutaMailaaAlas(ControlEvent e)
131         {
132             PhysicsObject maila = e.Parameter0.ToPhysicsObject();
133             Vector2D nopeus = new Vector2D(0, -200);
134             maila.Velocity = nopeus;
135             return false;
136         }
137
138    } 
139
140     
141
142
143}           
144
145   
146   
147
148
149           
150
151
152
153
154   
Note: See TracBrowser for help on using the repository browser.