Changeset 1312 for 2010/30/johulkko/pong/Peli.cs
- Timestamp:
- 2010-07-27 11:27:22 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/30/johulkko/pong/Peli.cs
r1289 r1312 6 6 public class Peli : PhysicsGame 7 7 { 8 Vector nopeusYlos = new Vector(0, 200);9 Vector nopeusAlas = new Vector(0, -200);8 Vector nopeusYlos = new Vector(0, 400); 9 Vector nopeusAlas = new Vector(0,400); 10 10 11 11 PhysicsObject pallo; … … 14 14 PhysicsObject maila2; 15 15 16 PhysicsObject vasenReuna; 17 PhysicsObject oikeaReuna; 18 19 IntMeter pelaajan1Pisteet; 20 IntMeter pelaajan2Pisteet; 16 21 17 22 protected override void Begin() … … 20 25 LuoKentta(); 21 26 AsetaOhjaimet(); 27 LisaaLaskurit () ; 22 28 AloitaPeli(); 23 24 29 25 30 } … … 33 38 pallo.Restitution = 1.0; 34 39 Add(pallo); 40 AddCollisionHandler(pallo, KasittelePallonTormays); 35 41 36 LuoMaila(Level.Left + 10.0, 0.0);37 LuoMaila(Level.Right - 10.0, 0.0);42 maila1 = LuoMaila(Level.Left + 10.0, 0.0); 43 maila2 = LuoMaila(Level.Right - 10.0, 0.0); 38 44 39 45 40 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; 41 59 42 43 Level.CreateBorders(1.0, false); 60 Level.BackgroundColor = Color.Black; 44 61 Level.BackgroundColor = Color.Black; 45 62 46 63 Camera.ZoomToLevel(); 47 48 64 49 65 } … … 52 68 { 53 69 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 54 Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös"); 55 Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null); 70 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 71 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 72 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 73 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 74 75 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 76 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 77 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 78 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 79 80 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 81 56 82 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 83 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 84 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 85 Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 86 Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 87 88 Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 89 Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 90 Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 91 Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 92 93 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 94 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 95 96 ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 97 ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 98 ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 99 ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 100 101 ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 102 ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 103 ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 104 ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 105 106 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 107 ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 57 108 58 109 } 59 110 60 61 62 void LuoMaila(double x, double y) 63 PhysicsObject LuoMaila( double x, double y ) 111 PhysicsObject LuoMaila(double x, double y) 112 64 113 { 65 114 PhysicsObject maila = PhysicsObject. … … 83 132 void AsetaNopeus(PhysicsObject maila, Vector nopeus) 84 133 { 85 maila.Velocity = nopeus; 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 145 maila.Velocity = nopeus; 146 } 147 148 void LisaaLaskurit() 149 { 150 pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 400.0, Screen.Top - 300.0); 151 pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 400.0, Screen.Top - 300.0); 152 153 } 154 155 IntMeter LuoPisteLaskuri( double x, double y ) 156 { 157 IntMeter laskuri = new IntMeter(0); 158 laskuri.MaxValue = 15; 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 169 void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 170 { 171 if (kohde == oikeaReuna) 172 { 173 pelaajan1Pisteet.Value += 1; 174 } 175 else if (kohde == vasenReuna) 176 { 177 pelaajan2Pisteet.Value += 1; 178 } 86 179 } 87 180 } 88 89 90 91 92 93 94
Note: See TracChangeset
for help on using the changeset viewer.