Changeset 9050 for 2017/30/TuomasH/Pong/Pong/Pong/Pong.cs
- Timestamp:
- 2017-07-24 13:35:39 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2017/30/TuomasH/Pong/Pong/Pong/Pong.cs
r9036 r9050 20 20 base.Update(time); 21 21 } 22 Vector nopeusYlos = new Vector(0, 200);23 Vector nopeusAlas = new Vector(0, - 200);22 Vector nopeusYlos = new Vector(0, 350); 23 Vector nopeusAlas = new Vector(0, -350); 24 24 PhysicsObject maila1; 25 25 PhysicsObject maila2; 26 IntMeter pelaajan1Pisteet; 27 IntMeter pelaajan2Pisteet; 28 PhysicsObject vasenReuna; 29 PhysicsObject oikeaReuna; 30 PhysicsObject alaReuna; 31 PhysicsObject yläReuna; 26 32 public override void Begin() 27 33 { … … 29 35 AloitaPeli(); 30 36 AsetaOhjaimet(); 37 LisaaLaskurit(); 31 38 32 39 … … 37 44 Add(pallo); 38 45 pallo.Shape = Shape.Circle; 46 pallo.KineticFriction = 0.0; 47 pallo.MomentOfInertia = Double.PositiveInfinity; 39 48 pallo.X = 0.0; 40 49 pallo.Y = 0.0; 41 Level.CreateBorders(1.0, false); 50 vasenReuna = Level.CreateLeftBorder(); 51 vasenReuna.Restitution = 1.0; 52 vasenReuna.IsVisible = false; 53 vasenReuna.KineticFriction = 0.0; 54 oikeaReuna = Level.CreateRightBorder(); 55 oikeaReuna.IsVisible = false; 56 oikeaReuna.Restitution = 0.0; 57 oikeaReuna.KineticFriction = 1.0; 58 alaReuna = Level.CreateBottomBorder(); 59 alaReuna.Restitution = 1.0; 60 alaReuna.IsVisible = false; 61 alaReuna.KineticFriction = 0.0; 62 yläReuna = Level.CreateTopBorder(); 63 yläReuna.Restitution = 1.0; 64 yläReuna.IsVisible = false; 65 yläReuna.KineticFriction = 0.0; 66 67 42 68 pallo.Restitution = (1.0); 43 69 Level.Background.Color = Color.Black; … … 45 71 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 46 72 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 73 AddCollisionHandler(pallo, PallonTormays); 47 74 48 75 } 49 76 void AloitaPeli() 50 77 { 51 Vector impulssi = new Vector(4 50.0, 30.0);78 Vector impulssi = new Vector(400.0, 50.0); 52 79 pallo.Hit(impulssi); 53 80 … … 64 91 maila.Y = y; 65 92 maila.Restitution = 1.0; 93 maila.KineticFriction = 0.0; 66 94 Add(maila); 67 95 return maila; … … 81 109 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 82 110 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 83 111 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 112 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 113 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 114 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 115 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 116 117 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 118 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 119 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 120 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 121 122 ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 123 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 124 84 125 85 126 … … 90 131 { 91 132 maila.Velocity = nopeus; 133 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 134 { 92 135 136 maila.Velocity = Vector.Zero; 137 return; 138 } 139 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 140 { 141 maila.Velocity = Vector.Zero; 142 return; 143 } 93 144 145 } 94 146 147 void LisaaLaskurit() 148 { 149 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100); 150 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100, Screen.Top - 100); 151 152 } 153 154 IntMeter LuoPisteLaskuri(double x, double y) 155 { 156 IntMeter laskuri = new IntMeter(0); 157 laskuri.MaxValue = 20; 158 Label naytto = new Label(); 159 naytto.BindTo(laskuri); 160 naytto.X = x; 161 naytto.Y = y; 162 naytto.TextColor = Color.White; 163 naytto.BorderColor = Level.Background.Color; 164 naytto.Color = Level.Background.Color; 165 Add (naytto); 166 return laskuri; 167 } 168 void PallonTormays(PhysicsObject pallo, PhysicsObject seinä) 169 { 170 if (seinä == oikeaReuna) 171 { 172 pelaajan1Pisteet.Value += 1; 173 } 174 else if (seinä == vasenReuna) 175 { 176 pelaajan2Pisteet.Value += 1; 177 } 95 178 } 96 179 }
Note: See TracChangeset
for help on using the changeset viewer.