Changeset 2957
- Timestamp:
- 2012-06-12 14:39:45 (11 years ago)
- Location:
- 2012/24/EemeliKu/Pong
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/24/EemeliKu/Pong/Pong/Pong/Pong.cs
r2932 r2957 9 9 public class Pong : PhysicsGame 10 10 { 11 12 13 14 Vector NopeusYlos = new Vector(0, 25); 15 Vector NopeusAlas = new Vector(0, -25); 16 Vector NopeusVasen = new Vector(-50, 0); 17 Vector NopeusOikea = new Vector(50, 0); 18 19 double MaksimiNopeus = 200; 20 11 21 PhysicsObject pallo; 12 Vector nopeusYlos = new Vector( 0, 200 ); 13 Vector nopeusAlas = new Vector( 0, -200 ); 14 15 PhysicsObject pallo; 16 17 PhysicsObject maila1; 22 23 PhysicsObject maila1; 18 24 PhysicsObject maila2; 19 25 26 IntMeter pelaajan1Pisteet; 27 IntMeter pelaajan2Pisteet; 28 29 PhysicsObject vasenReuna; 30 PhysicsObject oikeaReuna; 31 20 32 public override void Begin() 21 { 33 { 22 34 23 35 … … 25 37 LuoKentta(); 26 38 AloitaPeli(); 39 LisaaLaskurit(); 27 40 AsetaOhjaimet(); 28 41 29 42 30 43 … … 40 53 pallo.Y = 0; 41 54 pallo.Restitution = (1); 42 Level.CreateBorders(1.0, false); 55 pallo.Color = Color.White; 56 vasenReuna = Level.CreateLeftBorder(); 57 vasenReuna.Restitution = 1.0; 58 vasenReuna.IsVisible = false; 59 oikeaReuna = Level.CreateRightBorder(); 60 oikeaReuna.Restitution = 1.0; 61 oikeaReuna.IsVisible = false; 62 PhysicsObject yläReuna = Level.CreateTopBorder(); 63 yläReuna.Restitution = 1.0; 64 yläReuna.IsVisible = false; 65 PhysicsObject alaReuna = Level.CreateBottomBorder(); 66 alaReuna.Restitution = 1.0; 67 alaReuna.IsVisible = false; 43 68 Level.BackgroundColor = Color.Black; 44 69 Camera.ZoomToLevel(); 45 Maila1(Level.Left + 20, 0); 46 Maila2(Level.Right - 20, 0); 47 48 49 } 50 70 maila1 = LuoMaila(Level.Left + 20, 0); 71 maila2 = LuoMaila(Level.Right - 20, 0); 72 MessageDisplay.TextColor = Color.Blue; 73 AddCollisionHandler(pallo, KasittelePallonTormays); 74 75 } 76 77 51 78 void AloitaPeli() 52 79 { … … 55 82 } 56 83 57 voidLuoMaila(double x, double y)58 { 59 PhysicsObject maila = PhysicsObject.CreateStaticObject(20, 100);84 PhysicsObject LuoMaila(double x, double y) 85 { 86 PhysicsObject maila = new PhysicsObject(20, 100); 60 87 maila.Shape = Shape.Rectangle; 61 88 maila.X = x; 62 89 maila.Y = y; 63 90 maila.Restitution = 1; 91 maila.CanRotate = false; 64 92 Add(maila); 93 maila.Color = Color.White; 94 95 return maila; 65 96 66 97 } … … 69 100 { 70 101 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 71 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 72 Keyboard.Listen(Key.A, ButtonState.Pressed, LiikutaMailaaYlos, " Liikuta Mailaa Ylös"); 73 Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null); 74 } 75 void AsetaNopeus() (PhysicsObject maila, Vector nopeus) 76 { 77 maila.Velocity = nopeus; 78 } 102 Keyboard.Listen(Key.Escape, ButtonState.Down, ConfirmExit, "Lopeta peli"); 103 Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, " Liikuta Mailaa Ylös", maila1, NopeusYlos); 104 Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 105 Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, NopeusAlas); 106 Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 107 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, " Liikuta Mailaa Vasemalle", maila1, NopeusVasen); 108 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 109 Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, " Liikuta Mailaa Oikealle", maila1, NopeusOikea); 110 Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 111 112 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, NopeusYlos); 113 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 114 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, NopeusAlas); 115 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 116 Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa vasemmalle", maila2, NopeusVasen); 117 Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 118 Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa oikealle", maila2, NopeusOikea); 119 Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 120 121 122 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 123 124 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, NopeusYlos); 125 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 126 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, NopeusAlas); 127 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 128 ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, AsetaNopeus, "Liikuta mailaa vasemmalle", maila1, NopeusVasen); 129 ControllerOne.Listen(Button.DPadLeft, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 130 ControllerOne.Listen(Button.DPadRight, ButtonState.Down, AsetaNopeus, "Liikuta mailaa oikealle", maila1, NopeusOikea); 131 ControllerOne.Listen(Button.DPadRight, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 132 133 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, NopeusYlos); 134 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 135 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, NopeusAlas); 136 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 137 ControllerTwo.Listen(Button.DPadLeft, ButtonState.Down, AsetaNopeus, "Liikuta mailaa vasemmalle", maila2, NopeusVasen); 138 ControllerTwo.Listen(Button.DPadLeft, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 139 ControllerTwo.Listen(Button.DPadRight, ButtonState.Down, AsetaNopeus, "Liikuta mailaa oikealle", maila2, NopeusOikea); 140 ControllerTwo.Listen(Button.DPadRight, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 141 142 ControllerOne.Listen(Button.Start, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 143 ControllerTwo.Listen(Button.Start, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 144 ControllerOne.Listen(Button.Back, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 145 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 146 Keyboard.Listen(Key.F10, ButtonState.Pressed, PallonOhjaus, null, Color.Yellow); 147 Keyboard.Listen(Key.F11, ButtonState.Pressed, PallonOhjaus, null, Color.Green); 148 149 150 } 151 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 152 { 153 /* 154 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 155 { 156 maila.Velocity = Vector.Zero; 157 return; 158 } 159 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 160 { 161 maila.Velocity = Vector.Zero; 162 return; 163 } 164 */ 165 166 maila.ApplyTorque(1000); 167 168 maila.Velocity = maila1.Velocity+ nopeus; 169 170 if (maila.Velocity.MagnitudeSquared > MaksimiNopeus) 171 { 172 maila.Velocity = maila.Velocity.Normalize() * MaksimiNopeus; 173 } 174 } 175 176 void LisaaLaskurit() 177 { 178 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 179 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 180 } 181 182 IntMeter LuoPisteLaskuri(double x, double y) 183 { 184 IntMeter laskuri = new IntMeter(0); 185 laskuri.MaxValue = 10; 186 Label naytto = new Label(); 187 naytto.BindTo(laskuri); 188 naytto.X = x; 189 naytto.Y = y; 190 naytto.TextColor = Color.White; 191 naytto.BorderColor = Level.BackgroundColor; 192 naytto.Color = Level.BackgroundColor; 193 Add(naytto); 194 return laskuri; 195 196 } 197 198 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 199 { 200 if (kohde == oikeaReuna) 201 { 202 pelaajan1Pisteet.Value += 1; 203 } 204 else if (kohde == vasenReuna) 205 { 206 pelaajan2Pisteet.Value += 1; 207 } 208 else if (kohde == maila1) 209 { 210 pallo.Color = Color.Red; 211 pallo.Velocity = pallo.Velocity * 1.25; 212 } 213 else if (kohde == maila2) 214 { 215 pallo.Color = Color.Blue; 216 pallo.Velocity = pallo.Velocity * 1.25; 217 218 } 219 220 } 221 222 223 224 void PallonOhjaus(Color vari) 225 { 226 pallo.Color = vari; 227 } 228 229 230 void Pysayta() 231 { 232 maila1.Velocity = Vector.Zero; 79 233 } 234 235 236 237 238 }
Note: See TracChangeset
for help on using the changeset viewer.