Changeset 1088 for 2010/27/frjolehm/Ping Pong/Ping Pong/Peli.cs
- Timestamp:
- 2010-07-06 13:07:46 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/27/frjolehm/Ping Pong/Ping Pong/Peli.cs
r1067 r1088 14 14 PhysicsObject maila2; 15 15 16 PhysicsObject vasenReuna; 17 PhysicsObject oikeaReuna; 18 PhysicsObject yläReuna; 19 PhysicsObject alaReuna; 20 16 21 IntMeter pelaaja1Pisteet; 17 22 IntMeter pelaaja2Pisteet; 23 24 Boolean vastustaja; 25 Boolean löyjä; 18 26 19 27 protected override void Begin() … … 24 32 Ohjaimet(); 25 33 LisääLaskurit(); 26 AloitaPeli(); 27 28 } 34 AloitaPeli(500); 35 36 } 37 29 38 //Pelin luonti 30 39 void LuoKenttä() … … 34 43 maila2 = LuoMaila(Level.Right - 30, 0, 1.0); 35 44 //pallon luonti 45 LuoPallo(RandomGen.NextColor()); 46 //taso 47 vasenReuna = Level.CreateLeftBorder(); 48 vasenReuna.Restitution = 1.0; 49 vasenReuna.IsVisible = false; 50 51 oikeaReuna = Level.CreateRightBorder(); 52 oikeaReuna.Restitution = 1.0; 53 oikeaReuna.IsVisible = false; 54 55 alaReuna = Level.CreateBottomBorder(); 56 alaReuna.Restitution = 1.0; 57 alaReuna.IsVisible = false; 58 alaReuna.KineticFriction = 0.0; 59 60 yläReuna = Level.CreateTopBorder(); 61 yläReuna.Restitution = 1.0; 62 yläReuna.IsVisible = false; 63 yläReuna.KineticFriction = 0.0; 64 65 66 Camera.ZoomToLevel(); 67 68 } 69 70 void LuoPallo(Color väri) 71 { 36 72 pallo = new PhysicsObject(35, 35); 37 pallo.Shape = Shapes.Triangle; 38 pallo.Color = Color.Cyan; 73 pallo.Shape = Shapes.Rectangle; 74 pallo.KineticFriction = 0.0; 75 pallo.Color = väri; 39 76 pallo.X = 0; 40 77 pallo.Y = 0; 41 78 pallo.Restitution = 1.0; 42 79 Add(pallo); 43 //taso 44 Level.CreateBorders(1.0, false); 45 Level.BackgroundColor = Color.Black; 46 47 Camera.ZoomToLevel(); 48 49 } 50 void AloitaPeli() 51 { 52 Vector impullsi = new Vector(200, 0); 80 AddCollisionHandler(pallo, PallonTörmäys); 81 } 82 83 void PallonTörmäys(PhysicsObject pallo, PhysicsObject kohde) 84 { 85 if (kohde == vasenReuna) 86 { 87 pelaaja2Pisteet.Value += 1; 88 pallo.Destroy(); 89 LuoPallo(RandomGen.NextColor()); 90 AloitaPeli(-500); 91 92 } 93 else if (kohde == oikeaReuna) 94 { 95 pelaaja1Pisteet.Value += 1; 96 pallo.Destroy(); 97 LuoPallo(RandomGen.NextColor()); 98 AloitaPeli(500); 99 } 100 else if (kohde == maila2) 101 { 102 löyjä = true; 103 } 104 else if (kohde == maila1) 105 { 106 löyjä = false; 107 } 108 } 109 110 void AloitaPeli(double nopeus) 111 { 112 Vector impullsi = new Vector(nopeus, RandomGen.NextInt(-200,200)); 53 113 pallo.Hit(impullsi); 54 114 } 115 55 116 PhysicsObject LuoMaila(double x, double y, double kimmoisuus) 56 117 { … … 60 121 maila.Y = y; 61 122 maila.Restitution = kimmoisuus; 123 maila.KineticFriction = 1.5; 62 124 Add(maila); 63 125 return maila; 64 126 } 127 65 128 //Ohjamiet 66 129 void Ohjaimet() … … 69 132 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 70 133 Keyboard.Listen(Key.H, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 134 Keyboard.Listen(Key.Enter, ButtonState.Pressed, LaitaVastustaja, "Laita vastustaja päälle."); 71 135 72 136 //Pelaaja 1 … … 75 139 Keyboard.Listen(Key.Z, ButtonState.Down, LaitaNopeus, "Pelaaja 1: Liikuta mailaa alaspäin.", maila1, nopeusAlas); 76 140 Keyboard.Listen(Key.Z, ButtonState.Released, LaitaNopeus, null, maila1, Vector.Zero); 77 //Pelaaja 2 78 Keyboard.Listen(Key.Up, ButtonState.Down, LaitaNopeus, "Pelaaja 2: Liikuta mailaa ylöspäin.", maila2, nopeusYlös); 79 Keyboard.Listen(Key.Up, ButtonState.Released, LaitaNopeus, null, maila2, Vector.Zero); 80 Keyboard.Listen(Key.Down, ButtonState.Down, LaitaNopeus, "Pelaaja 2: Liikuta mailaa alaspäin.", maila2, nopeusAlas); 81 Keyboard.Listen(Key.Down, ButtonState.Released, LaitaNopeus, null, maila2, Vector.Zero); 82 } 141 //Pelaaja 2 tai Botti 142 if (vastustaja == false) 143 { 144 Keyboard.Listen(Key.Up, ButtonState.Down, LaitaNopeus, "Pelaaja 2: Liikuta mailaa ylöspäin.", maila2, nopeusYlös); 145 Keyboard.Listen(Key.Up, ButtonState.Released, LaitaNopeus, null, maila2, Vector.Zero); 146 Keyboard.Listen(Key.Down, ButtonState.Down, LaitaNopeus, "Pelaaja 2: Liikuta mailaa alaspäin.", maila2, nopeusAlas); 147 Keyboard.Listen(Key.Down, ButtonState.Released, LaitaNopeus, null, maila2, Vector.Zero); 148 } 149 } 150 151 void LaitaVastustaja() 152 { 153 if (vastustaja) 154 { 155 vastustaja = false; 156 LaitaNopeus(maila2, Vector.Zero); 157 } else { 158 vastustaja = true; 159 } 160 } 161 83 162 void LaitaNopeus(PhysicsObject maila, Vector nopeus) 84 163 { … … 118 197 } 119 198 120 199 protected override void Update(Time time) 200 { 201 if (vastustaja == true) 202 { 203 if (löyjä == true) 204 { 205 if (maila2.Y < -10) 206 { 207 LaitaNopeus(maila2, nopeusYlös); 208 } 209 else if (maila2.Y > 10) 210 { 211 LaitaNopeus(maila2, nopeusAlas); 212 } 213 else 214 { 215 LaitaNopeus(maila2, Vector.Zero); 216 } 217 } 218 else 219 { 220 if ((pallo.Y > (maila2.Y + 75))) 221 { 222 LaitaNopeus(maila2, nopeusYlös); 223 } 224 else if ((pallo.Y < (maila2.Y - 75))) 225 { 226 LaitaNopeus(maila2, nopeusAlas); 227 } 228 else 229 { 230 LaitaNopeus(maila2, Vector.Zero); 231 } 232 } 233 } 234 base.Update(time); 235 } 121 236 }
Note: See TracChangeset
for help on using the changeset viewer.