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