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