Changeset 3993 for 2013/23/Jon-ErikK/magnetaa.cs
- Timestamp:
- 2013-06-06 12:38:08 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/23/Jon-ErikK/magnetaa.cs
r3976 r3993 8 8 9 9 public class magnetaa : PhysicsGame 10 { 10 { 11 bool peliPaalla; 12 bool asd; 13 14 Image punainenPaikallaan; 15 Image sininenPaikallaan; 16 Image sininenAmmus; 17 Image punainenAmmus; 18 11 19 IntMeter pelaaja1Elamat; 12 20 IntMeter pelaaja2Elamat; … … 19 27 PhysicsObject oikearaja; 20 28 PhysicsObject vasenraja; 29 PhysicsObject asdin; 21 30 22 31 List<Ammus> ammukset; 23 32 24 Vector ylos = new Vector(0, 1 00);25 Vector alas = new Vector(0, -1 00);26 Vector oikea = new Vector(1 00, 0);27 Vector vasen = new Vector(-1 00, 0);33 Vector ylos = new Vector(0, 190); 34 Vector alas = new Vector(0, -190); 35 Vector oikea = new Vector(190, 0); 36 Vector vasen = new Vector(-190, 0); 28 37 29 38 public override void Begin() 30 39 { 40 peliPaalla = false; 41 asd = false; 42 43 Level.BackgroundColor=Color.Black; 44 45 MultiSelectWindow alkuvalikko = new MultiSelectWindow("Magneta", "Aloita peli", "Poistu pelistä"); 46 Add(alkuvalikko); 47 48 alkuvalikko.BorderColor = Color.White; 49 alkuvalikko.ActiveColor = Color.White; 50 alkuvalikko.SelectionColor = Color.Silver; 51 alkuvalikko.Color = Color.Gray; 52 53 Label vihje = new Label(); 54 vihje.Text = "+X- -Y- O = EasterEgg"; 55 vihje.X = 200; 56 vihje.Y = -300; 57 vihje.TextColor = Color.Red; 58 59 Add(vihje); 60 61 alkuvalikko.AddItemHandler(0, valivaihe); 62 alkuvalikko.AddItemHandler(1, Exit); 63 64 } 65 66 public void valivaihe() 67 { 68 ClearGameObjects(); 69 70 luoPeli(); 71 } 72 73 public void luoPeli() 74 { 75 peliPaalla = true; 76 31 77 ammukset = new List<Ammus>(); 32 78 33 luoKentta(-300,0,300,0,new Vector(0,1), new Vector(0,-1)); 79 alustaKuvat(); 80 luoKentta(-300, 0, 300, 0, new Vector(0, 1), new Vector(0, 1)); 34 81 asetaNappaimet(); 35 82 } 36 83 37 //pelikentän säätäminen alkaa38 39 public void uusiPeli()40 {84 public void uudelleenkaynnistaPeli() 85 { 86 asd = false; 87 asdin = null; 41 88 ClearAll(); 42 89 Begin(); 43 90 } 44 91 92 public void seuraavaPeli() 93 { 94 ClearGameObjects(); 95 luoPeli(); 96 } 97 98 //pelikentän säätäminen alkaa 99 45 100 public void luoKentta(double pelaaja1x, double pelaaja1y, double pelaaja2x, double pelaaja2y, Vector alkusuunta1, Vector alkusuunta2) { 46 101 … … 155 210 } 156 211 212 public void alustaKuvat() 213 { 214 punainenAmmus = LoadImage("Panos_punainen"); 215 216 sininenAmmus = LoadImage("Panos_sininen"); 217 218 punainenPaikallaan = LoadImage("Peliukko_punainen_01"); 219 sininenPaikallaan = LoadImage("Peliukko_sininen_1"); 220 } 221 157 222 public Pelaaja luoPelaaja(double x, double y, Vector alkusuunta, int numero) { 158 223 159 224 Pelaaja pelaaja = new Pelaaja(x, y, alkusuunta, numero); 225 pelaaja.Image = sininenPaikallaan; 160 226 161 227 Add(pelaaja); … … 169 235 170 236 public void asetaNappaimet() { 171 237 172 238 Keyboard.Listen(Key.W, ButtonState.Down, asetaPelaajanSuuntaJaNopeus, null, pelaaja1, ylos); 173 239 Keyboard.Listen(Key.W, ButtonState.Released, asetaPelaajanSuuntaJaNopeus, null, pelaaja1, Vector.Zero); … … 179 245 Keyboard.Listen(Key.D, ButtonState.Released, asetaPelaajanSuuntaJaNopeus, null, pelaaja1, Vector.Zero); 180 246 181 Keyboard.Listen(Key. Space, ButtonState.Pressed, ammu, null, pelaaja1);182 Keyboard.Listen(Key. LeftShift, ButtonState.Pressed, vaihdaMagneettisuus, null, pelaaja1);183 Keyboard.Listen(Key. Q, ButtonState.Pressed, luoTorni, null, pelaaja1);247 Keyboard.Listen(Key.C, ButtonState.Pressed, ammu, null, pelaaja1); 248 Keyboard.Listen(Key.V, ButtonState.Pressed, vaihdaMagneettisuus, null, pelaaja1); 249 Keyboard.Listen(Key.B, ButtonState.Pressed, luoTorni, null, pelaaja1); 184 250 185 251 Keyboard.Listen(Key.Up, ButtonState.Down, asetaPelaajanSuuntaJaNopeus, null, pelaaja2, ylos); … … 196 262 Keyboard.Listen(Key.M, ButtonState.Pressed, luoTorni, null, pelaaja2); 197 263 264 Keyboard.Listen(Key.O, ButtonState.Pressed, asding, null); 265 198 266 199 267 … … 213 281 apuyksikkovektori = apuyksikkovektori.Normalize(); 214 282 215 283 pelaaja.Animation.Start(); 284 285 pelaaja.Angle = apuyksikkovektori.Angle + Angle.FromDegrees(-90); 216 286 217 287 maaritaPelaajanAmmuksenSuunta(apuyksikkovektori, pelaaja); 218 } 288 } 219 289 220 290 pelaaja.Velocity = nopeus; … … 235 305 public void ammu(Pelaaja pelaaja) 236 306 { 237 double apuX=pelaaja.ammustenSuunta.X * 38;238 double apuY=pelaaja.ammustenSuunta.Y * 38;307 double apuX=pelaaja.ammustenSuunta.X * 40; 308 double apuY=pelaaja.ammustenSuunta.Y * 40; 239 309 240 310 luoUusiAmmus(pelaaja.X+apuX, pelaaja.Y+apuY, pelaaja.magneetinVari, pelaaja.ammustenSuunta); … … 245 315 Ammus uusiAmmus = new Ammus(onkoMagneettinen, x, y); 246 316 247 uusiAmmus.Velocity=suunta*2 00;317 uusiAmmus.Velocity=suunta*250; 248 318 uusiAmmus.X = x; 249 319 uusiAmmus.Y = y; 320 uusiAmmus.Angle += Angle.FromDegrees(-90); 321 if (uusiAmmus.Magneettisuus) 322 { 323 uusiAmmus.Image = punainenAmmus; 324 } 325 else 326 { 327 uusiAmmus.Image = sininenAmmus; 328 } 250 329 251 330 AddCollisionHandler(uusiAmmus, osumaAmmuksella); … … 259 338 public void osumaAmmuksella(PhysicsObject ammus, PhysicsObject osuja) 260 339 { 261 Ammus ammus2 = (Ammus) ammus;340 Ammus ammus2 = (Ammus) ammus; 262 341 263 342 for(int i=0;i<ammukset.Count;i++){ … … 265 344 { 266 345 osuja.Destroy(); 346 Add(luoRajahdys(ammus.X, ammus.Y, 30)); 347 Add(luoRajahdys(osuja.X, osuja.Y, 30)); 267 348 ammus.Destroy(); 268 349 … … 298 379 299 380 ammus.Destroy(); 381 Add(luoRajahdys(ammus.X, ammus.Y, 30)); 300 382 ammukset.Remove(ammus2); 301 383 … … 304 386 } 305 387 306 if (osuukoReunaan(ammus ,osuja))388 if (osuukoReunaan(ammus2,osuja)) 307 389 { 308 390 return; … … 314 396 { 315 397 ammus.Destroy(); 398 Add(luoRajahdys(ammus.X, ammus.Y, 30)); 316 399 317 400 ammukset.Remove(ammus2); … … 322 405 { 323 406 osuja.Destroy(); 407 Add(luoRajahdys(pelaaja1.tornit[i].X, pelaaja1.tornit[i].Y, 60)); 324 408 pelaaja1.tornit.Remove(pelaaja1.tornit[i]); 325 409 } … … 335 419 ammus.Destroy(); 336 420 421 Add(luoRajahdys(ammus.X, ammus.Y, 30)); 422 337 423 ammukset.Remove(ammus2); 338 424 … … 341 427 if (pelaaja2.tornit[i].elamat <= 0) 342 428 { 429 Add(luoRajahdys(pelaaja2.tornit[i].X, pelaaja2.tornit[i].Y, 60)); 430 343 431 osuja.Destroy(); 344 pelaaja2.tornit.Remove(pelaaja2.tornit[i]); 432 pelaaja2.tornit.Remove(pelaaja2.tornit[i]); 345 433 } 346 434 … … 348 436 } 349 437 } 350 } 351 352 public bool osuukoReunaan(PhysicsObject ammus, PhysicsObject osuja) 353 { 438 439 if (osuja == asdin) 440 { 441 for (int i = 0; i < 10; i++) 442 { 443 bool randomtrue = RandomGen.NextBool(); 444 double randomX = RandomGen.NextDouble(Level.Left, Level.Right); 445 double randomY = RandomGen.NextDouble(Level.Bottom, Level.Top); 446 Vector vektori = RandomGen.NextVector(0,0); 447 448 luoUusiAmmus(randomX, randomY, randomtrue, vektori); 449 } 450 } 451 452 453 } 454 455 public Explosion luoRajahdys(double x, double y, double sade) 456 { 457 Explosion rajahdys = new Explosion(sade); 458 rajahdys.X = x; 459 rajahdys.Y = y; 460 rajahdys.Force = 0; 461 462 return rajahdys; 463 } 464 465 public bool osuukoReunaan(Ammus ammus, PhysicsObject osuja) 466 { 467 354 468 if (osuja == ylaraja) 355 469 { … … 373 487 if (osuja == oikearaja) 374 488 { 375 ammus.X = -ammus.X + 11; 376 Vector nopeus = ammus.Velocity; 377 Timer.SingleShot(0.01, delegate { ammus.Velocity = nopeus; }); 489 ammus.Destroy(); 490 ammukset.Remove(ammus); 378 491 379 492 return true; … … 383 496 if (osuja == vasenraja) 384 497 { 385 ammus. X = -ammus.X - 11;386 Vector nopeus = ammus.Velocity;387 Timer.SingleShot(0.01, delegate { ammus.Velocity = nopeus; }); 498 ammus.Destroy(); 499 ammukset.Remove(ammus); 500 388 501 return true; 389 502 } … … 396 509 //Magneettisuuden vaihto alkaa 397 510 398 public void vaihdaMagneettisuus(PhysicsObject pelaaja) 399 { 400 if (pelaaja == pelaaja2) 401 { 402 if (pelaaja2.magneetinVari) 403 { 404 pelaaja2.magneetinVari = false; 405 } 406 else 407 { 408 pelaaja2.magneetinVari = true; 409 } 410 } 511 public void vaihdaMagneettisuus(Pelaaja pelaaja) 512 { 513 if (pelaaja.magneetinVari) 514 { 515 pelaaja.magneetinVari = false; 516 pelaaja.Image = LoadImage("Peliukko_sininen_1"); 517 } 411 518 else 412 { 413 if (pelaaja1.magneetinVari) 414 { 415 pelaaja1.magneetinVari = false; 416 } 417 else 418 { 419 pelaaja1.magneetinVari = true; 420 } 421 } 519 { 520 pelaaja.magneetinVari = true; 521 pelaaja.Image = LoadImage("Peliukko_punainen_01"); 522 } 523 422 524 423 525 } … … 452 554 { 453 555 base.Update(time); 454 tarkistaMagneetit(); 455 pelaajienTarkistus(); 556 if (peliPaalla) 557 { 558 tarkistaMagneetit(); 559 pelaajienTarkistus(); 560 } 561 456 562 } 457 563 … … 468 574 ammukset[i].Velocity = ammukset[i].Velocity + voima; 469 575 ammukset[j].Velocity = ammukset[j].Velocity + vastavoima; 576 577 ammukset[i].Angle = ammukset[i].Velocity.Angle + Angle.FromDegrees(-90); 578 ammukset[j].Angle = ammukset[j].Velocity.Angle + Angle.FromDegrees(-90); 470 579 } 471 580 } … … 554 663 } 555 664 } 665 666 if (pelaaja.Y < -350 && pelaaja.X > 400 || pelaaja.X < -400) 667 { 668 asd = true; 669 } 670 } 671 672 public void asding() 673 { 674 if (asd&&asdin==null&&(pelaaja1.Y<-350||pelaaja2.Y<-350)) 675 { 676 PhysicsObject asding = new PhysicsObject(100, 100); 677 asding.Velocity = pelaaja1.Velocity; 678 asding.Image = LoadImage("Peliukko(variton)_1"); 679 Add(asding); 680 681 this.asdin = asding; 682 } 556 683 } 557 684 558 685 //Päivitys loppuu 559 686 687 //Pelin lopetus 688 560 689 public void pelinLoppu(Pelaaja pelaaja) 561 690 { 691 562 692 Pelaaja ilmoitettava; 563 693 … … 581 711 Add(voittajanilmoitus); 582 712 583 Timer.SingleShot(2, delegate { uusiPeli(); }); 584 713 Timer.SingleShot(2, delegate { uudelleenkaynnistaPeli(); }); 714 715 585 716 } 586 717
Note: See TracChangeset
for help on using the changeset viewer.