- Timestamp:
- 2010-07-28 10:24:32 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/30/jyniinin/pong/Peli.cs
r1335 r1351 6 6 public class Peli : PhysicsGame 7 7 { 8 Vector nopeusYlos = new Vector( 0, 400);9 Vector nopeusAlas = new Vector( 0, -400);8 Vector nopeusYlos = new Vector(0, 200); 9 Vector nopeusAlas = new Vector(0, -200); 10 10 11 12 11 PhysicsObject pallo; 13 12 PhysicsObject maila1; … … 38 37 AddCollisionHandler(pallo, KasittelePallonTormays); 39 38 40 maila1 = LuoMaila(Level.Left + 20.0, 0.0);41 maila2 = LuoMaila(Level.Right - 20.0, 0.0);39 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 40 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 42 41 43 44 vasenReuna = Level.CreateLeftBorder(); 45 vasenReuna.Restitution = 1.0; 46 vasenReuna.IsVisible = false; 47 oikeaReuna = Level.CreateRightBorder(); 48 oikeaReuna.Restitution = 1.0; 49 oikeaReuna.IsVisible = false; 50 PhysicsObject ylaReuna = Level.CreateTopBorder(); 51 ylaReuna.Restitution = 1.0; 52 ylaReuna.IsVisible = false; 53 PhysicsObject alaReuna = Level.CreateBottomBorder(); 54 alaReuna.Restitution = 1.0; 55 alaReuna.IsVisible = false; 56 42 vasenReuna = Level.CreateLeftBorder(); 43 vasenReuna.Restitution = 1.0; 44 vasenReuna.IsVisible = false; 45 oikeaReuna = Level.CreateRightBorder(); 46 oikeaReuna.Restitution = 1.0; 47 oikeaReuna.IsVisible = false; 48 PhysicsObject ylaReuna = Level.CreateTopBorder(); 49 ylaReuna.Restitution = 1.0; 50 ylaReuna.IsVisible = false; 51 PhysicsObject alaReuna = Level.CreateBottomBorder(); 52 alaReuna.Restitution = 1.0; 53 alaReuna.IsVisible = false; 57 54 58 55 Level.BackgroundColor = Color.Black; 59 56 60 57 Camera.ZoomToLevel(); 61 } 62 PhysicsObject LuoMaila(double x, double y) 63 { 58 } 59 60 PhysicsObject LuoMaila(double x, double y) 61 { 64 62 PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 65 63 maila.Shape = Shapes.Rectangle; … … 69 67 Add(maila); 70 68 return maila; 69 } 70 71 void LisaaLaskurit() 72 { 73 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 74 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 75 } 76 77 IntMeter LuoPisteLaskuri(double x, double y) 78 { 79 IntMeter laskuri = new IntMeter(0); 80 laskuri.MaxValue = 10; 81 Label naytto = new Label(); 82 naytto.BindTo(laskuri); 83 naytto.X = x; 84 naytto.Y = y; 85 naytto.TextColor = Color.White; 86 Add(naytto); 87 return laskuri; 88 } 89 90 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 91 { 92 if (kohde == oikeaReuna) 93 { 94 pelaajan1Pisteet.Value += 1; 95 } 96 else if (kohde == vasenReuna) 97 { 98 pelaajan2Pisteet.Value += 1; 99 } 100 } 101 102 void AloitaPeli() 103 { 104 Vector impulssi = new Vector(500.0, 0.0); 105 pallo.Hit(impulssi); 106 } 107 108 void AsetaOhjaimet() 109 { 110 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 111 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 112 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 113 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 114 115 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 116 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 117 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 118 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 119 120 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 121 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 122 123 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 124 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 125 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 126 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 127 128 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 129 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 130 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 131 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 132 133 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 134 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 135 } 136 137 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 138 { 139 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 140 { 141 maila.Velocity = Vector.Zero; 142 return; 143 } 144 if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 145 { 146 maila.Velocity = Vector.Zero; 147 return; 71 148 } 72 149 73 void LisaaLaskurit() 74 { 75 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 76 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 77 78 } 79 80 IntMeter LuoPisteLaskuri(double x, double y) 81 { 82 IntMeter laskuri = new IntMeter(0); 83 laskuri.MaxValue = 10; 84 Label naytto = new Label(); 85 naytto.BindTo(laskuri); 86 naytto.X = x; 87 naytto.Y = y; 88 naytto.TextColor = Color.White; 89 Add(naytto); 90 return laskuri; 91 } 92 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 93 { 94 if (kohde == oikeaReuna) 95 { 96 pelaajan1Pisteet.Value += 1; 97 } 98 else if (kohde == vasenReuna) 99 { 100 pelaajan2Pisteet.Value += 1; 101 } 102 103 } 104 105 106 void AloitaPeli() 107 { 108 109 Vector impulssi = new Vector(500.0, 100.0); 110 pallo.Hit(impulssi); 111 } 112 113 void AsetaOhjaimet() 114 { 115 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 116 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 117 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 118 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 119 120 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 121 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 122 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 123 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 124 125 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 126 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 127 128 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 129 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 130 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 131 ControllerOne.Listen(Button.DPadDown, 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 138 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 139 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 140 141 ControllerOne.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 142 ControllerTwo.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 143 144 MessageDisplay.TextColor = Color.White; 145 } 146 147 148 const double pallonNopeus = 500; 149 150 protected override void Update( Time time ) 151 { 152 if ( pallo != null && Math.Abs( pallo.Velocity.X ) < pallonNopeus ) 153 { 154 pallo.Velocity = new Vector( pallo.Velocity.X * 1.1, pallo.Velocity.Y ); 155 } 156 base.Update( time ); 150 maila.Velocity = nopeus; 157 151 } 158 159 void AsetaNopeus( PhysicsObject maila, Vector nopeus )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 }173 174 maila.Velocity = nopeus;175 152 } 176 177 178 }
Note: See TracChangeset
for help on using the changeset viewer.