Changeset 30
- Timestamp:
- 2009-07-20 14:48:26 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
aleksi_h/Pong/Peli.cs
r12 r30 21 21 public class Peli : PhysicsGame 22 22 { 23 PhysicsObject pallo; 24 PhysicsObject maila1; 25 PhysicsObject maila2; 26 27 Meter<int> pelaajan1Pisteet; 28 Meter<int> pelaajan2Pisteet; 29 23 30 protected override void LoadContent() 24 31 { 25 //IShape ympyrä = Shapes.CreateCircle(20.0) 26 //IShape ympyrä = Shapes.CreateCircle(58.0) 27 IShape ympyra = Shapes.CreateRectangle(30.0, 20.0); 28 PhysicsObject pallo = new PhysicsObject(10.0, ympyra); 29 pallo.X = -200.0; 32 Level = LuoKentta(); 33 AsetaOhjaimet(); 34 LisaaLaskurit(); 35 AloitaPeli(); 36 } 37 Level LuoKentta() 38 { 39 Level kentta = new Level(this); 40 kentta.BackgroundColor = Color.Black; 41 42 IShape ympyra = Shapes.CreateCircle(20.0); 43 pallo = new PhysicsObject(10.0, ympyra); 44 pallo.X = -200; 30 45 pallo.Y = 0.0; 31 Level.Objects.Add(pallo); 32 Vector2D impulssi = new Vector2D(4000.0, 0.0); 46 pallo.Restitution = 1.0; 47 kentta.Objects.Add(pallo); 48 49 maila1 = LuoMaila(kentta.Left + 20, 0.0, kentta); 50 maila2 = LuoMaila(kentta.Right - 20, 0.0, kentta); 51 52 kentta.CreateBorder(1.0, false); 53 54 return kentta; 55 } 56 void AloitaPeli() 57 { 58 Vector2D impulssi = new Vector2D(2000.0, 0.0); 33 59 pallo.Hit(impulssi); 34 pallo.Restitution = 1.0; 35 Level.CreateBorder(1.0, false); 36 Level.BackgroundColor = Color.Black; 60 } 61 PhysicsObject LuoMaila(double x, double y, Level kentta) 62 { 63 IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0); 64 PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio); 65 maila.X = x; 66 maila.Y = y; 67 maila.Restitution = 1.0; 68 kentta.Objects.Add(maila); 69 return maila; 70 } 71 void AsetaOhjaimet() 72 { 73 Controls.Listen(Keys.A, ButtonPosition.Down, LiikutaMailaa, "Pelaaja1: Liikuta mailaa ylös", maila1, 200.0); 74 Controls.Listen(Keys.Z, ButtonPosition.Down, LiikutaMailaa, "Pelaaja1: Liikuta mailaa alas", maila1, -200.0); 75 76 Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaa, "Pelaaja2: Liikuta mailaa ylös", maila2, 200.0); 77 Controls.Listen(Keys.Down, ButtonPosition.Down, LiikutaMailaa, "Pelaaja2: Liikuta mailaa alas", maila2, -200.0); 78 } 79 bool LiikutaMailaa(ControlEvent e) 80 { 81 PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 82 double nopeus = e.Parameter1.ToDouble(); 83 double sekuntejaKulunut = e.Time.ElapsedGameTime.TotalSeconds; 84 double uusiY = maila.Y + nopeus * sekuntejaKulunut; 85 86 if ((Level.Bottom < uusiY) && (uusiY < Level.Top)) 87 { 88 maila.Y = uusiY; 89 } 90 91 return false; 92 } 93 void LisaaLaskurit() 94 { 95 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 96 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 97 } 98 Meter<int> LuoPisteLaskuri(double x, double y) 99 { 100 Meter<int> laskuri = new Meter<int>(0, 0, 10); 101 ValueDisplay naytto = new ValueDisplay(this); 102 naytto.BindTo(laskuri); 103 naytto.X = x; 104 naytto.Y = y; 105 naytto.ValueColor = Color.White; 106 Add(naytto); 107 return laskuri; 37 108 } 38 109 }
Note: See TracChangeset
for help on using the changeset viewer.