Changeset 534
- Timestamp:
- 2010-06-08 11:26:42 (13 years ago)
- Location:
- 2010/23/leperoih
- Files:
-
- 25 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/23/leperoih/Pong/Peli.cs
r509 r534 7 7 public class Peli : PhysicsGame 8 8 { 9 Vector nopeusYlos = new Vector(0, 200); 10 Vector nopeusAlas = new Vector(0, -200); 11 12 PhysicsObject vasenReuna; 13 PhysicsObject oikeaReuna; 9 14 PhysicsObject pallo; 10 15 PhysicsObject maila1; 11 16 PhysicsObject maila2; 17 18 IntMeter pelaajan1Pisteet; 19 IntMeter pelaajan2Pisteet; 12 20 13 21 protected override void Begin() … … 15 23 LuoKentta(); 16 24 AsetaOhjaimet(); 25 LisaaLaskurit(); 17 26 AloitaPeli(); 18 27 } 19 28 29 void LisaaLaskurit() 30 { 31 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 32 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 33 34 } 35 36 IntMeter LuoPisteLaskuri(double x, double y) 37 { 38 IntMeter laskuri = new IntMeter( 0 ); 39 laskuri.MaxValue = 10; 40 ValueDisplay naytto = new ValueDisplay(); 41 naytto.BindTo ( laskuri ); 42 naytto.X = x; 43 naytto.Y = y; 44 naytto.ValueColor = Color.White; 45 Add( naytto ); 46 return laskuri; 47 } 48 49 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 50 { 51 if (kohde == vasenReuna) 52 { 53 pelaajan1Pisteet.Value += 1; 54 } 55 else if (kohde == vasenReuna) 56 { 57 pelaajan2Pisteet.Value += 1; 58 } 59 } 60 20 61 void LuoKentta() 21 62 { 63 22 64 pallo = new PhysicsObject(40.0, 40.0); 23 65 pallo.Shape = Shapes.Circle; … … 29 71 maila1 = LuoMaila(Level.Left + 20.0, 0.0); 30 72 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 31 Vector nopeusYlos = new Vector(0, 200);32 Vector nopeusAlas = new Vector(0, -200);33 73 34 74 Level.CreateBorders(1.0, false); 35 Level.BackgroundColor = Color. Black;75 Level.BackgroundColor = Color.Pink; 36 76 37 77 Camera.ZoomToLevel(); 78 79 80 AddCollisionHandler(pallo, KasittelePallonTormays); 81 82 83 vasenReuna = Level.CreateLeftBorder(); 84 oikeaReuna = Level.CreateRightBorder(); 85 vasenReuna.Restitution = 1.0; 86 vasenReuna.IsVisible = false; 87 88 oikeaReuna.Restitution = 1.0; 89 oikeaReuna.IsVisible = false; 90 PhysicsObject alaReuna = Level.CreateBottomBorder(); 91 alaReuna.Restitution = 1.0; 92 alaReuna.IsVisible = false; 93 PhysicsObject ylaReuna = Level.CreateTopBorder(); 94 ylaReuna.Restitution = 1.0; 95 ylaReuna.IsVisible = false; 38 96 } 39 97 … … 57 115 void AsetaOhjaimet() 58 116 { 59 Keyboard.Listen(Key. W, ButtonState.Down, AsetaNopeus, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1);60 Keyboard.Listen(Key. W, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila1);61 Keyboard.Listen(Key. S, ButtonState.Down, AsetaNopeus, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1);62 Keyboard.Listen(Key. S, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila1);117 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 118 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 119 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 120 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 63 121 64 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2);65 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila2);66 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2);67 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila2);122 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 123 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 124 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 125 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 68 126 69 127 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 70 128 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 129 130 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 131 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 132 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 133 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 134 135 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 136 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 137 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 138 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 139 140 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 141 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 71 142 } 72 143 73 void LiikutaMailaaYlos(PhysicsObject maila)144 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 74 145 { 75 if (maila.Y >= Level.Top) 146 if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 147 { 148 maila.Velocity = Vector.Zero; 149 return; 150 } 151 if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 76 152 { 77 153 maila.Velocity = Vector.Zero; … … 79 155 } 80 156 81 Vector nopeus = new Vector(0, 200);82 maila.Velocity = nopeus;83 84 }85 86 void LiikutaMailaaAlas(PhysicsObject maila)87 {88 Vector nopeus = new Vector(0, -200);89 157 maila.Velocity = nopeus; 90 }91 92 void PysaytaMaila(PhysicsObject maila)93 {94 maila.Velocity = Vector.Zero;95 158 } 96 159 }
Note: See TracChangeset
for help on using the changeset viewer.