- Timestamp:
- 2010-07-27 11:27:46 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/30/jyniinin/pong/Peli.cs
r1294 r1314 14 14 PhysicsObject maila2; 15 15 16 PhysicsObject vasenReuna; 17 PhysicsObject oikeaReuna; 18 19 IntMeter pelaajan1Pisteet; 20 IntMeter pelaajan2Pisteet; 21 16 22 protected override void Begin() 17 23 { 18 24 LuoKentta(); 19 25 AsetaOhjaimet(); 26 LisaaLaskurit(); 20 27 AloitaPeli(); 21 28 } … … 29 36 pallo.Restitution = 1.0; 30 37 Add(pallo); 38 AddCollisionHandler(pallo, KasittelePallonTormays); 31 39 32 40 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 33 41 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 34 42 35 43 vasenReuna = Level.CreateLeftBorder(); 44 vasenReuna.Restitution = 1.0; 45 vasenReuna.IsVisible = false; 46 oikeaReuna = Level.CreateRightBorder(); 47 oikeaReuna.Restitution = 1.0; 48 oikeaReuna.IsVisible = false; 49 PhysicsObject ylaReuna = Level.CreateTopBorder(); 50 ylaReuna.Restitution = 1.0; 51 ylaReuna.IsVisible = false; 52 PhysicsObject alaReuna = Level.CreateBottomBorder(); 53 alaReuna.Restitution = 1.0; 54 alaReuna.IsVisible = false; 36 55 37 Level.CreateBorders(1.0, false); 56 38 57 Level.BackgroundColor = Color.Black; 39 58 … … 50 69 return maila; 51 70 } 71 72 void LisaaLaskurit() 73 { 74 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 75 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 76 77 } 78 79 IntMeter LuoPisteLaskuri(double x, double y) 80 { 81 IntMeter laskuri = new IntMeter(0); 82 laskuri.MaxValue = 10; 83 Label naytto = new Label(); 84 naytto.BindTo(laskuri); 85 naytto.X = x; 86 naytto.Y = y; 87 naytto.TextColor = Color.White; 88 Add(naytto); 89 return laskuri; 90 } 91 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 92 { 93 if (kohde == oikeaReuna) 94 { 95 pelaajan1Pisteet.Value += 1; 96 pallo.X = 0.0; 97 pallo.Y = 0.0; 98 Vector impulssi = new Vector(500.0, 0.0); 99 pallo.Hit(impulssi); 100 pallo.Restitution = 1.0; 101 102 } 103 else if (kohde == vasenReuna) 104 { 105 pelaajan2Pisteet.Value += 1; 106 pallo.X = 0.0; 107 pallo.Y = 0.0; 108 Vector impulssi = new Vector(500.0, 0.0); 109 pallo.Hit(impulssi); 110 pallo.Restitution = 1.0; 111 112 113 } 114 115 } 116 117 52 118 void AloitaPeli() 53 119 { … … 70 136 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 71 137 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 138 139 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 140 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 141 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 142 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 143 144 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 145 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 146 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 147 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 148 149 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 150 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 151 152 ControllerOne.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 153 ControllerTwo.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 154 155 MessageDisplay.TextColor = Color.White; 72 156 } 73 157 74 158 75 159 void AsetaNopeus( PhysicsObject maila, Vector nopeus ) 76 { 77 if (maila.Top > Level.Top) 78 { 79 maila.Velocity = Vector.Zero; 80 return; 81 } 160 { 161 162 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 163 { 164 maila.Velocity = Vector.Zero; 165 return; 166 } 167 168 if ( (nopeus.Y > 0) && (maila.Top > Level.Top) ) 169 { 170 maila.Velocity = Vector.Zero; 171 return; 172 } 82 173 83 174 maila.Velocity = nopeus;
Note: See TracChangeset
for help on using the changeset viewer.