- Timestamp:
- 2014-07-03 15:01:04 (9 years ago)
- Location:
- 2014/27/RahulM
- Files:
-
- 232 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2014/27/RahulM/pong/pong/pong/pong.cs
r5185 r5382 13 13 14 14 PhysicsObject pallo; 15 16 15 PhysicsObject maila1; 17 16 PhysicsObject maila2; 18 17 19 public override void Begin() 20 { 21 22 23 pallo = new PhysicsObject(40.0, 40.0); 18 PhysicsObject vasenReuna; 19 PhysicsObject oikeaReuna; 20 21 IntMeter pelaajan1Pisteet; 22 IntMeter pelaajan2Pisteet; 23 24 public override void Begin() 25 { 26 LuoKentta(); 27 AsetaOhjaimet(); 28 LisaaLaskurit(); 29 AloitaPeli(); 30 31 } 32 33 void LuoKentta() 34 { 35 pallo = new PhysicsObject(40.0, 40.0); 24 36 pallo.Shape = Shape.Circle; 25 37 pallo.X = -200.0; 26 38 pallo.Y = 0.0; 27 39 pallo.Restitution = 1.0; 40 pallo.KineticFriction = 0.0; 41 pallo.MomentOfInertia = Double.PositiveInfinity; 28 42 Add(pallo); 43 AddCollisionHandler(pallo, KasittelePallonTormays); 29 44 30 45 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 31 maila1 = LuoMaila(Level.Right - 20.0, 0.0); 46 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 47 32 48 33 34 Level.CreateBorders(1.0, false); 49 vasenReuna = Level.CreateLeftBorder(); 50 vasenReuna.Restitution = 1.0; 51 vasenReuna.KineticFriction = 0.0; 52 vasenReuna.IsVisible = false; 53 54 oikeaReuna = Level.CreateRightBorder(); 55 oikeaReuna.Restitution = 1.0; 56 oikeaReuna.KineticFriction = 0.0; 57 oikeaReuna.IsVisible = false; 58 59 PhysicsObject ylaReuna = Level.CreateTopBorder(); 60 ylaReuna.Restitution = 1.0; 61 ylaReuna.KineticFriction = 0.0; 62 ylaReuna.IsVisible = false; 63 64 PhysicsObject alaReuna = Level.CreateBottomBorder(); 65 alaReuna.Restitution = 1.0; 66 alaReuna.IsVisible = false; 67 alaReuna.KineticFriction = 0.0; 68 35 69 Level.Background.Color = Color.Black; 36 70 37 71 Camera.ZoomToLevel(); 38 AloitaPeli(); 39 40 AsetaOhjaimet(); 41 42 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 43 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 44 } 45 46 void AloitaPeli() 47 { 48 49 Vector impulssi = new Vector(500.0, 0.0); 50 pallo.Hit(impulssi); 51 } 72 } 73 52 74 PhysicsObject LuoMaila(double x, double y) 53 75 { … … 57 79 maila.Y = y; 58 80 maila.Restitution = 1.0; 81 maila.KineticFriction = 0.0; 59 82 Add(maila); 60 83 return maila; 61 84 } 62 85 63 void AsetaOhjaimet() 64 { 65 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös",maila1, nopeusYlös); 86 void LisaaLaskurit() 87 { 88 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 89 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 90 } 91 92 IntMeter LuoPisteLaskuri(double x, double y) 93 { 94 IntMeter laskuri = new IntMeter(0); 95 laskuri.MaxValue = 10; 96 97 Label naytto = new Label(); 98 naytto.BindTo(laskuri); 99 naytto.X = x; 100 naytto.Y = y; 101 naytto.TextColor = Color.White; 102 naytto.BorderColor = Level.Background.Color; 103 naytto.Color = Level.Background.Color; 104 Add(naytto); 105 106 return laskuri; 107 } 108 109 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 110 { 111 if (kohde == oikeaReuna) 112 { 113 pelaajan1Pisteet.Value += 1; 114 } 115 else if (kohde == vasenReuna) 116 { 117 pelaajan2Pisteet.Value += 1; 118 } 119 } 120 121 void AloitaPeli() 122 { 123 Vector impulssi = new Vector(500.0, 0.0); 124 pallo.Hit(impulssi); 125 } 126 127 128 void AsetaOhjaimet() 129 { 130 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlös); 66 131 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 67 132 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); … … 70 135 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlös); 71 136 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 72 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas);137 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 73 138 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 74 139 75 140 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 76 141 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 77 } 78 142 143 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlös); 144 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 145 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 146 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 147 148 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlös); 149 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 150 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 151 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 152 153 ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 154 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 155 } 156 79 157 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 80 { 81 maila.Velocity = nopeus; 82 } 83 158 { 159 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 160 { 161 maila.Velocity = Vector.Zero; 162 return; 163 } 164 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 165 { 166 maila.Velocity = Vector.Zero; 167 return; 168 } 169 170 maila.Velocity = nopeus; 171 } 84 172 } 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
Note: See TracChangeset
for help on using the changeset viewer.