source: aki_s/Pong/Peli.cs @ 46

Revision 46, 3.8 KB checked in by akjuhesa, 14 years ago (diff)

Kaikki paitsi pistelaskuri toimii, se ei vain näy

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 LiikutaMailaa(ControlEvent e)
28        {
29            PhysicsObject maila = e.Parameter0.ToPhysicsObject();     
30            double nopeus = e.Parameter1.ToDouble();
31            double sekuntejaKulunut = e.Time.ElapsedGameTime.TotalSeconds;
32            double uusiY = maila.Y + nopeus * sekuntejaKulunut;
33
34            if ((Level.Bottom < uusiY) && (uusiY < Level.Top))
35            {
36                maila.Y = uusiY;
37            }
38
39            return false;
40        }
41       
42        protected override void LoadContent()
43        {
44            Level = LuoKentta();
45            AsetaOhjaimet();
46            LisaaLaskurit();
47            AloitaPeli();
48            Meter<int> pelaajan1Pisteet;
49            Meter<int> pelaajan2Pisteet;
50
51            IShape ympyra = Shapes.CreateCircle(20.0);
52            PhysicsObject pallo = new PhysicsObject(10.0, ympyra);
53           
54        }
55
56        Level LuoKentta()
57        {
58
59            Level kentta = new Level(this);
60            kentta.BackgroundColor = Color.Black;
61
62            IShape ympyra = Shapes.CreateCircle(15.0);
63            pallo = new PhysicsObject(10.0, ympyra);
64            pallo.X = -200.0;
65            pallo.Y = 0.0;
66            pallo.Restitution = 1.1;
67            kentta.Objects.Add(pallo);
68
69          maila1 =  LuoMaila(kentta.Left +20.0, 0.0, kentta);
70          maila2 =  LuoMaila(kentta.Right - 20.0, 0.0, kentta);
71
72
73            kentta.CreateBorder(1.0, false);
74
75            return kentta;
76        }
77        void AloitaPeli()
78        {
79            Vector2D impulssi = new Vector2D(30000.0, 0.0);
80            pallo.Hit(impulssi);
81
82
83        }
84        PhysicsObject LuoMaila(double x, double y, Level kentta)
85        {
86            IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0);
87            PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio);
88            maila.X = x;
89            maila.Y = y;
90            maila.Restitution = 1.1;
91            kentta.Objects.Add(maila);
92            return maila;
93
94        }
95        void AsetaOhjaimet()
96        {
97            Controls.Listen(Keys.W, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 1: Liikuta mailaa ylös", maila1, 550);
98            Controls.Listen(Keys.S, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 1: Liikuta mailaa alas", maila1, -550);
99
100            Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 2: Liikuta mailaa ylös", maila2, 550);
101            Controls.Listen(Keys.Down, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 2: Liikuta mailaa alas", maila2, -550);
102
103        }
104        Meter<int> LuoPisteLaskuri(double x, double y)
105        {
106            Meter<int> laskuri = new Meter<int>(0, 0, 10);
107            ValueDisplay naytto = new ValueDisplay(this);
108            naytto.BindTo(laskuri);
109            naytto.X = x;
110            naytto.Y = y;
111            naytto.ValueColor = Color.White;
112            Add(naytto);
113            return laskuri;
114        }
115
116        void LisaaLaskurit()
117        {
118            pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0);
119            pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0);
120
121        }
122
123       
124
125    }
126}
Note: See TracBrowser for help on using the repository browser.