- Timestamp:
- 2013-06-25 14:55:04 (10 years ago)
- Location:
- 2013/26/JustusK
- Files:
-
- 19 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/26/JustusK/Pong/Pong/Pong/Pong.cs
r4189 r4221 13 13 14 14 PhysicsObject pallo; 15 16 15 PhysicsObject maila1; 17 16 PhysicsObject maila2; 17 PhysicsObject vasenReuna; 18 PhysicsObject oikeaReuna; 19 20 IntMeter pelaajan1Pisteet; 21 IntMeter pelaajan2Pisteet; 18 22 19 23 public override void Begin() 20 24 { 21 25 LuoKentta(); 22 AsetaOhjaimet(); 26 AsetaOhjaimet(); 27 LisaaLaskurit(); 23 28 AloitaPeli(); 24 25 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");26 29 } 27 void AsetaNopeus(PhysicsObject maila, Vector nopeus)28 {29 maila.Velocity = nopeus;30 }31 30 void LuoKentta() 32 31 { … … 36 35 pallo.Y = 0.0; 37 36 pallo.Restitution = 1.0; 37 pallo.KineticFriction = 0.0; 38 pallo.MomentOfInertia = Double.PositiveInfinity; 38 39 Add(pallo); 40 AddCollisionHandler(pallo, KasittelePallonTormays); 39 41 40 42 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 41 43 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 42 44 43 Level.CreateBorders(1.0, false); 45 vasenReuna = Level.CreateLeftBorder(); 46 vasenReuna.Restitution = 1.0; 47 vasenReuna.IsVisible = false; 48 oikeaReuna = Level.CreateRightBorder(); 49 oikeaReuna.Restitution = 1.0; 50 oikeaReuna.IsVisible = false; 51 PhysicsObject alaReuna = Level.CreateBottomBorder(); 52 alaReuna.Restitution = 1.0; 53 alaReuna.IsVisible = false; 54 PhysicsObject ylaReuna = Level.CreateTopBorder(); 55 ylaReuna.Restitution = 1.0; 56 ylaReuna.IsVisible = false; 44 57 Level.BackgroundColor = Color.Black; 45 58 46 59 Camera.ZoomToLevel(); 47 60 } 48 49 void AsetaOhjaimet()50 {51 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos);52 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero);53 54 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");55 }56 57 61 PhysicsObject LuoMaila(double x, double y) 58 62 { … … 64 68 Add(maila); 65 69 return maila; 66 } 67 70 } 68 71 void AloitaPeli() 69 72 { 70 73 Vector impulssi = new Vector(500.0, 0.0); 71 74 pallo.Hit(impulssi); 72 73 75 } 76 void AsetaOhjaimet() 77 { 78 Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 79 Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 80 Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusAlas); 81 Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 74 82 83 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 84 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 85 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusAlas); 86 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 87 88 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 89 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 90 } 91 92 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 93 { 94 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 95 { 96 maila.Velocity = Vector.Zero; 97 return; 98 } 99 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 100 { 101 maila.Velocity = Vector.Zero; 102 return; 103 } 104 maila.Velocity = nopeus; 105 } 106 void LisaaLaskurit() 107 { 108 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 109 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 110 } 111 IntMeter LuoPisteLaskuri (double x, double y) 112 { 113 IntMeter laskuri = new IntMeter(0); 114 laskuri.MaxValue = 10; 115 116 Label naytto = new Label(); 117 naytto.BindTo(laskuri); 118 naytto.X = x; 119 naytto.Y = y; 120 naytto.TextColor = Color.Blue; 121 naytto.BorderColor = Level.BackgroundColor; 122 naytto.Color = Level.BackgroundColor; 123 Add(naytto); 124 return laskuri; 125 } 126 void KasittelePallonTormays (PhysicsObject pallo, PhysicsObject kohde) 127 { 128 if (kohde == oikeaReuna) 129 { 130 pelaajan1Pisteet.Value +=1; 131 } 132 else if (kohde == vasenReuna) 133 { 134 pelaajan2Pisteet.Value += 1; 135 } 136 137 } 75 138 }
Note: See TracChangeset
for help on using the changeset viewer.