source: zhipeng_j/pong/Peli.cs @ 430

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