Changeset 4670 for 2013/30/NoelV/shooter/shooter/shooter/shooter.cs
- Timestamp:
- 2013-07-25 14:55:24 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/30/NoelV/shooter/shooter/shooter/shooter.cs
r4639 r4670 15 15 Image aluksenKuva = LoadImage("alus"); 16 16 Image vihollisenKuva = LoadImage("vihollinen"); 17 Image enkanKuva = LoadImage("enkka"); 18 SoundEffect ampuminen = LoadSoundEffect("laser"); 19 Image kilvenKuva = LoadImage("kilpi"); 17 20 PhysicsObject alus; 18 PhysicsObject enkka;19 21 20 22 PhysicsObject ammus; 21 23 24 EasyHighScore topLista = new EasyHighScore(); 25 26 bool onkoKilpea = false; 27 22 28 public override void Begin() 23 29 { 30 //topLista.HighScoreWindow.Image = aluksenKuva; 31 topLista.HighScoreWindow.OKButton.Image = vihollisenKuva; 32 33 //topLista.Show(); 34 //alkuvalikko tähän 35 valikko(null); 36 37 } 38 39 void valikko(Window sender) 40 { 41 MultiSelectWindow alkuValikko = new MultiSelectWindow("Valikko", "Aloita peli", "Parhaat pisteet", "Lopeta"); 42 alkuValikko.Image = aluksenKuva; 43 Level.BackgroundColor = Color.Red; 44 alkuValikko.SelectionColor = Color.Black; 45 Add(alkuValikko); 46 alkuValikko.AddItemHandler(0, AloitaPeli); 47 alkuValikko.AddItemHandler(1, ParhaatPisteet); 48 alkuValikko.AddItemHandler(2, Exit); 49 50 alkuValikko.Color = Color.Transparent; 51 52 53 } 54 55 void ParhaatPisteet() 56 { 57 topLista.Show(); 58 topLista.HighScoreWindow.Closed += valikko; 59 } 60 61 void AloitaPeli() 62 { 63 ClearAll(); 24 64 LuoPelaaja(); 25 65 26 66 67 68 27 69 LuoVihollinen(new Vector(0, 450)); 28 70 … … 32 74 33 75 Timer vihunLuontiAjastin = new Timer(); 34 vihunLuontiAjastin.Interval = 0. 5;76 vihunLuontiAjastin.Interval = 0.6; 35 77 vihunLuontiAjastin.Timeout += delegate { LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 36 78 vihunLuontiAjastin.Start(); 37 79 80 Timer enkkaAjastin = new Timer(); 81 enkkaAjastin.Interval = 15.0; 82 enkkaAjastin.Timeout += delegate { LuoEnkka(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 83 enkkaAjastin.Start(); 84 85 Timer kilpiAjastin = new Timer(); 86 kilpiAjastin.Interval = 22.0; 87 kilpiAjastin.Timeout += delegate { LuoKilpi(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 88 kilpiAjastin.Start(); 89 38 90 LuoElamaLaskuri(); 39 91 LuoPisteLaskuri(); … … 41 93 42 94 Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "Ampuu", alus); 43 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");44 45 Level.Background.Create Gradient(Color.Red, Color.Blue);95 Keyboard.Listen(Key.Escape, ButtonState.Pressed, KysyPoistumista, "Lopeta peli"); 96 97 Level.Background.CreateStars(); 46 98 Camera.ZoomToLevel(); 47 99 } 100 101 void KysyPoistumista() 102 { 103 IsPaused = true; 104 MultiSelectWindow valikko = new MultiSelectWindow("Haluatko lopettaa?", 105 "Kyllä", "Ei", "EN tiedä!"); 106 valikko.AddItemHandler(0, Exit); 107 valikko.AddItemHandler(2, delegate { if (RandomGen.NextBool()) Exit(); }); 108 valikko.Closed += delegate { IsPaused = false; }; 109 valikko.Color = Color.Red; 110 Add(valikko); 111 112 } 113 48 114 49 115 private void LuoPelaaja() … … 63 129 AddCollisionHandler(alus, "vihu", OsuuViholliseen); 64 130 65 66 67 } 68 131 AddCollisionHandler(alus, "enkka", OsuuEnkkaan); 132 133 AddCollisionHandler(alus, "kilpi", OsuuKilpeen); 134 135 } 136 137 void OsuuKilpeen(PhysicsObject pelaaja, PhysicsObject kilpi) 138 { 139 kilpi.Destroy(); 140 onkoKilpea = true; 141 142 double aikaaJaljella = 10.0; 143 144 Label teksti = new Label("kilpi " + aikaaJaljella); 145 teksti.Y = Screen.Top - 100; 146 teksti.X = Screen.Left + 100; 147 teksti.TextColor = Color.Red; 148 Add(teksti); 149 150 Timer ajastin = new Timer(); 151 ajastin.Interval = 1.0; 152 //myöhemmin: näytä aia jäljellä väliajoin: 153 ajastin.Timeout += delegate 154 { 155 aikaaJaljella -= 1.0; 156 teksti.Text = "kilpi " + aikaaJaljella; 157 158 //MessageDisplay.Add("Aikaa: " + aikaaJaljella); 159 160 }; 161 ajastin.Start(5); 162 ajastin.Stopped += delegate 163 { 164 onkoKilpea = false; 165 teksti.Destroy(); 166 167 168 }; 169 170 } 69 171 70 172 void OsuuViholliseen(PhysicsObject pelaaja, PhysicsObject vihu) 71 173 { 72 elamaLaskuri.Value--; 73 174 if (onkoKilpea == false) 175 { 176 elamaLaskuri.Value--; 177 178 } 179 else 180 { 181 vihu.Destroy(); 182 } 74 183 } 75 184 … … 82 191 83 192 Add(vihollinen); 84 Vector impulssi = new Vector(0.0, -10000 .0);193 Vector impulssi = new Vector(0.0, -100000.0); 85 194 vihollinen.Hit(impulssi); 86 195 vihollinen.Restitution = 1.5; … … 109 218 { 110 219 if (ampuja.IsDestroyed) return; 111 ammus = new PhysicsObject(5, 15); 220 ampuminen.Play(); 221 //PlaySound("laser"); 222 ammus = new PhysicsObject(2, 20); 112 223 ammus.Color = Color.OrangeRed; 113 224 ammus.LifetimeLeft = TimeSpan.FromSeconds(4); … … 124 235 void AmmusOsuu(PhysicsObject ammus, PhysicsObject kohde) 125 236 { 126 ammus.Destroy(); 237 238 if (!kohde.Tag.Equals("enkka")) ammus.Destroy(); 127 239 if (kohde.Tag.Equals("vihu")) 128 240 { 129 Explosion rajahdys = new Explosion(1 00);241 Explosion rajahdys = new Explosion(150); 130 242 rajahdys.Position = kohde.Position; 131 243 rajahdys.ShockwaveColor = Color.Transparent; … … 157 269 pisteNaytto.Y = Screen.Top - 100; 158 270 pisteNaytto.TextColor = Color.Orange; 159 pisteNaytto.Color = Color. Blue;271 pisteNaytto.Color = Color.Transparent; 160 272 pisteNaytto.IntFormatString = "Pisteet: {00}"; 161 273 pisteNaytto.BindTo(pisteLaskuri); … … 168 280 vihollisNaytto.X = 0; 169 281 vihollisNaytto.Y = Screen.Top - 100; 170 vihollisNaytto.TextColor = Color. Black;171 vihollisNaytto.Color = Color. Red;172 vihollisNaytto.IntFormatString = "Vihollisia pääs iläpi: {00}";282 vihollisNaytto.TextColor = Color.Red; 283 vihollisNaytto.Color = Color.Transparent; 284 vihollisNaytto.IntFormatString = "Vihollisia päässyt läpi: {00}"; 173 285 vihollisNaytto.BindTo(vihollisLaskuri); 174 286 Add(vihollisNaytto); … … 191 303 void ElamaLoppui() 192 304 { 305 193 306 Explosion rajahdys = new Explosion(50); 194 307 195 308 rajahdys.Position = alus.Position; 196 309 Add(rajahdys); 197 310 Pause(); 198 311 199 312 alus.Destroy(); … … 203 316 teksti.TextScale = new Vector(3, 3); 204 317 Add(teksti); 205 318 teksti.Color = Color.Red; 319 320 topLista.EnterAndShow(pisteLaskuri.Value); 321 topLista.HighScoreWindow.Closed += AloitaAlusta; 322 323 } 324 325 public void AloitaAlusta(Window sender) 326 { 327 ClearAll(); 328 if (IsPaused == true) 329 { 330 Pause(); 331 } 332 Begin(); 333 } 334 335 private void LuoEnkka(Vector paikka) 336 { 337 PhysicsObject enkka = new PhysicsObject(50, 50); 338 enkka.Position = paikka; 339 enkka.Image = enkanKuva; 340 enkka.IgnoresCollisionResponse = true; 341 enkka.IgnoresExplosions = true; 342 Add(enkka); 343 Vector impulssi = new Vector(0.0, -500.0); 344 enkka.Hit(impulssi); 345 enkka.Tag = "enkka"; 346 enkka.CanRotate = false; 347 348 } 349 350 void OsuuEnkkaan(PhysicsObject pelaaja, PhysicsObject enkka) 351 { 352 elamaLaskuri.Value += 2; 353 enkka.Destroy(); 354 } 355 356 void LuoKilpi(Vector paikka) 357 { 358 IPhysicsObject kilpi = new PhysicsObject(50, 50); 359 kilpi.Position = paikka; 360 kilpi.Image = kilvenKuva; 361 kilpi.IgnoresCollisionResponse = true; 362 kilpi.IgnoresExplosions = true; 363 Add(kilpi); 364 Vector impulssi = new Vector(0.0, -500.0); 365 kilpi.Hit(impulssi); 366 kilpi.Tag = "kilpi"; 367 kilpi.CanRotate = false; 206 368 } 207 369 } … … 211 373 212 374 375 376 377
Note: See TracChangeset
for help on using the changeset viewer.