Changeset 1319 for 2010/30/jumakall/Pong/Peli.cs
- Timestamp:
- 2010-07-27 11:30:25 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/30/jumakall/Pong/Peli.cs
r1282 r1319 15 15 PhysicsObject maila2; 16 16 17 PhysicsObject vasenReuna; 18 PhysicsObject oikeaReuna; 19 20 IntMeter pelaajan1Pisteet; 21 IntMeter pelaajan2Pisteet; 22 17 23 18 24 protected override void Begin() … … 20 26 LuoKentta(); 21 27 AsetaOhjaimet(); 28 LisaaLaskurit(); 22 29 AloitaPeli(); 30 } 23 31 24 }25 32 26 33 void LuoKentta() … … 28 35 pallo = new PhysicsObject(40.0, 40.0); 29 36 pallo.Shape = Shapes.Circle; 30 pallo.X = -200.0;37 pallo.X = 0.0; 31 38 pallo.Y = 0.0; 32 39 pallo.Restitution = 1.0; 40 pallo.CanRotate = true; 33 41 Add(pallo); 42 34 43 35 44 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 36 45 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 37 46 47 vasenReuna = Level.CreateLeftBorder(); 48 vasenReuna.Restitution = 1.0; 49 vasenReuna.IsVisible = false; 50 oikeaReuna = Level.CreateRightBorder(); 51 oikeaReuna.Restitution = 1.0; 52 oikeaReuna.IsVisible = false; 53 PhysicsObject ylaReuna = Level.CreateTopBorder(); 54 ylaReuna.Restitution = 1.0; 55 ylaReuna.IsVisible = false; 56 PhysicsObject alaReuna = Level.CreateBottomBorder(); 57 alaReuna.Restitution = 1.0; 58 alaReuna.IsVisible = false; 38 59 39 Level.CreateBorders(1.0, false); 60 61 40 62 Level.BackgroundColor = Color.Black; 41 63 42 64 Camera.ZoomToLevel(); 65 66 AddCollisionHandler(pallo, KasittelePallonTormays); 43 67 44 68 … … 47 71 void AloitaPeli() 48 72 { 49 Vector impulssi = new Vector(500.0, 51.0); 73 pallo.X = 0.0; 74 pallo.Y = 0.0; 75 76 pallo.Stop(); 77 78 Vector impulssi = new Vector(500.0, 111.0); 50 79 pallo.Hit(impulssi); 51 80 } … … 57 86 maila.X = x; 58 87 maila.Y = y; 59 maila.Restitution = 1.0;88 maila.Restitution = 5.0; 60 89 Add(maila); 61 90 … … 78 107 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 79 108 109 //xBox 360 110 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 111 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 112 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 113 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 114 115 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 116 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 117 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 118 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 119 120 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 121 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 122 123 ControllerOne.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 124 ControllerTwo.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 125 126 MessageDisplay.TextColor = Color.White; 127 128 129 80 130 } 81 131 82 132 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 83 133 { 134 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 135 { 136 maila.Velocity = Vector.Zero; 137 return; 138 } 139 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 140 { 141 maila.Velocity = Vector.Zero; 142 return; 143 } 144 84 145 maila.Velocity = nopeus; 85 146 } 86 147 148 void LisaaLaskurit() 149 { 150 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 151 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 152 } 153 154 155 IntMeter LuoPisteLaskuri(double x, double y) 156 { 157 IntMeter laskuri = new IntMeter(0); 158 laskuri.MaxValue = 10; 159 Label naytto = new Label(); 160 naytto.BindTo(laskuri); 161 naytto.X = x; 162 naytto.Y = y; 163 naytto.TextColor = Color.White; 164 Add(naytto); 165 return laskuri; 166 } 167 168 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 169 { 170 if (kohde == oikeaReuna) 171 { 172 pelaajan1Pisteet.Value += 1; 173 AloitaPeli(); 174 } 175 else if (kohde == vasenReuna) 176 { 177 pelaajan2Pisteet.Value += 1; 178 AloitaPeli(); 179 } 180 } 87 181 88 182 }
Note: See TracChangeset
for help on using the changeset viewer.