Changeset 5773
- Timestamp:
- 2014-11-15 15:00:22 (9 years ago)
- Location:
- 2014/koodauskerho/38/PietuR/Weaporage
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2014/koodauskerho/38/PietuR/Weaporage/Weaporage/Weaporage/Weaporage.cs
r5755 r5773 9 9 class Pommi : PhysicsObject 10 10 { 11 public Pommi(double leveys, double korkeus) 11 Weaporage peli; 12 13 public Pommi(Weaporage peli, double leveys, double korkeus) 12 14 : base(leveys, korkeus) 13 15 { 16 this.peli = peli; 17 } 18 19 public void Sytyta() 20 { 21 Animation = new Animation(peli.Pomminposaus); 22 Animation.FPS = 1; 23 Animation.Played += delegate 24 { 25 Explosion rajahdys = new Explosion(1000); 26 rajahdys.Position = Position; 27 rajahdys.Image = peli.Rajahdyskuva; 28 rajahdys.ShockwaveReachesObject += PaineaaltoOsuu; 29 rajahdys.Speed = 700; 30 peli.Add(rajahdys); 31 Destroy(); 32 }; 33 Animation.Start(); 34 } 35 36 void PaineaaltoOsuu(IPhysicsObject olio, Vector shokki) 37 { 38 Pelaaja pelaaja = peli.EtsiOmistaja(olio as PhysicsObject); 39 40 if (pelaaja != null) 41 { 42 pelaaja.Elamat.Value -= 6; 43 } 44 } 45 } 46 47 48 public class Pelaaja 49 { 50 List<PhysicsObject> ruumiinOsat = new List<PhysicsObject>(); 51 public List<PhysicsObject> RuumiinOsat { get { return ruumiinOsat; } } 52 53 IntMeter elamat; 54 55 public IntMeter Elamat { get { return elamat; } } 56 57 bool otetaanko = false; 58 public AxleJoint vasenKasi; 59 public AxleJoint oikeaKasi; 60 61 public bool OtetaankoKiinni 62 { 63 get 64 { 65 return otetaanko; 66 } 67 set 68 { 69 otetaanko = value; 70 foreach (var item in ruumiinOsat) 71 { 72 if ("oikeaKammen".Equals(item.Tag)) 73 { 74 if (oikeaKasi != null) return; 75 if (otetaanko) item.Color = Color.Red; 76 else item.Color = Color.Black; 77 } 78 if ("vasenKammen".Equals(item.Tag)) 79 { 80 if (vasenKasi != null) return; 81 if (otetaanko) item.Color = Color.Red; 82 else item.Color = Color.Black; 83 } 84 } 85 } 86 } 87 88 public Pelaaja(int defaultHp) 89 { 90 elamat = new IntMeter(defaultHp, 0, defaultHp); 14 91 } 15 92 } … … 24 101 Pelaaja pelaaja3; 25 102 Pelaaja pelaaja4; 103 104 public Image Pomminkuva = LoadImage("Pommi1"); 105 public Image Rajahdyskuva = LoadImage("Rajahdys"); 106 public Image[] Pomminposaus = LoadImages("Pommi2", "Pommi3", "Pommi4", "Pommi5", "Pommi6"); 26 107 27 108 Image Miekankuva = LoadImage("Miekka"); … … 32 113 Image Pistoolinkuva = LoadImage("Pistooli"); 33 114 Image Luodinkuva = LoadImage("Luoti"); 34 Image Pomminkuva = LoadImage("Pommi1");35 private Image[] Pomminposaus = LoadImages("Pommi2", "Pommi3", "Pommi4", "Pommi5", "Pommi6");36 Image Rajahdyskuva = LoadImage("Rajahdys");115 116 117 37 118 Image Pallonkuva = LoadImage("Pallo"); 38 119 … … 47 128 48 129 Level.Background.CreateGradient(RandomGen.NextColor(), RandomGen.NextColor()); 130 49 131 IsFullScreen = true; 50 132 51 pelaaja1 = new Pelaaja( 5);52 pelaaja2 = new Pelaaja( 5);53 pelaaja3 = new Pelaaja( 5);54 pelaaja4 = new Pelaaja( 5);133 pelaaja1 = new Pelaaja(10); 134 pelaaja2 = new Pelaaja(10); 135 pelaaja3 = new Pelaaja(10); 136 pelaaja4 = new Pelaaja(10); 55 137 56 138 IsMouseVisible = true; 57 139 58 PhysicsObject pallo = new PhysicsObject(20, 20, Shape.Circle); 59 Add(pallo); 140 /* PhysicsObject pallo = new PhysicsObject(200, 200); 141 pallo.Position = new Vector(0, 0); 142 RandomMoverBrain satunnaisAivot = new RandomMoverBrain(2000); 143 pallo.Image = Pallonkuva; 144 pallo.Brain = satunnaisAivot; 145 satunnaisAivot.ChangeMovementSeconds = 100; 146 pallo.Shape = Shape.Circle; 147 pallo.AngularAcceleration = 10000; 148 pallo.RotateImage = true; 149 pallo.Tag = "ase"; 150 Add(pallo);*/ 60 151 61 152 … … 167 258 PhysicsObject ase2 = new PhysicsObject(30, 70); 168 259 ase2.Position = asepaikka; 260 ase2.Mass = 1; 169 261 ase2.Image = Tikarinkuva; 170 262 ase2.Shape = Shape.FromImage(Tikarinkuva); … … 176 268 PhysicsObject ase3 = new PhysicsObject(50, 150); 177 269 ase3.Position = asepaikka; 270 ase3.Mass = 10; 178 271 ase3.Image = Miekankuva; 179 272 ase3.CollisionIgnoreGroup = 20000; … … 203 296 else if (asenumero == 6) 204 297 { 205 PhysicsObject ase6 = new PhysicsObject( 60, 30);298 PhysicsObject ase6 = new PhysicsObject(120, 60); 206 299 ase6.Position = asepaikka; 207 300 ase6.Image = Pistoolinkuva; … … 213 306 { 214 307 215 PhysicsObject Luoti = new PhysicsObject( 15, 7);308 PhysicsObject Luoti = new PhysicsObject(30, 14); 216 309 Luoti.Position = ase6.Position; 217 310 Luoti.Image = Luodinkuva; … … 226 319 else if (asenumero == 7) 227 320 { 228 Pommi ase7 = new Pommi( 50, 50);321 Pommi ase7 = new Pommi(this, 50, 50); 229 322 ase7.Position = asepaikka; 230 323 ase7.Image = Pomminkuva; … … 234 327 } 235 328 } 236 237 329 void LiikutaTatilla(AnalogState tatti, Pelaaja pelaaja) 238 330 { … … 270 362 PhysicsObject oikeaKammen = LuoRuumiinOsa(perusKoko / 2, perusKoko / 2, Shape.Circle, collisionIgnoreGroup + 1, keskiVartalo.Position + new Vector(115, 40), vari); 271 363 oikeaKammen.Tag = "oikeaKammen"; 364 365 keskiVartalo.Tag = "ruumis"; 366 paa.Tag = "ruumis"; 272 367 273 368 … … 348 443 } 349 444 350 void Sytytapommi(PhysicsObject pommi)351 {352 pommi.Animation = new Animation(Pomminposaus);353 pommi.Animation.FPS = 1;354 pommi.Animation.Played += delegate355 {356 Explosion rajahdys = new Explosion(1000);357 rajahdys.Position = pommi.Position;358 rajahdys.Image = Rajahdyskuva;359 rajahdys.Speed = 500;360 Add(rajahdys);361 posahdus(rajahdys);362 pommi.Destroy();363 };364 pommi.Animation.Start();365 366 }367 void posahdus(Explosion rajahdys)368 {369 PhysicsObject posaus = new PhysicsObject(500, 500);370 posaus.Position = rajahdys.Position;371 posaus.Shape = Shape.Circle;372 posaus.LifetimeLeft = TimeSpan.FromSeconds(3);373 posaus.Tag = "ase";374 Add(posaus);375 376 }377 445 void KeraaAseVasempaanKateen(PhysicsObject kasi, PhysicsObject ase, Pelaaja pelaaja) 378 446 { … … 383 451 if (ase is Pommi) 384 452 { 385 Sytytapommi(ase); 453 (ase as Pommi).Sytyta(); 454 //Sytytapommi(ase); 386 455 } 387 456 } … … 398 467 if (ase is Pommi) 399 468 { 400 Sytytapommi(ase);469 (ase as Pommi).Sytyta(); 401 470 } 402 471 } … … 431 500 } 432 501 502 public Pelaaja EtsiOmistaja(PhysicsObject osa) 503 { 504 if (OmistaaOsan(pelaaja1, osa)) return pelaaja1; 505 if (OmistaaOsan(pelaaja2, osa)) return pelaaja2; 506 if (OmistaaOsan(pelaaja3, osa)) return pelaaja3; 507 if (OmistaaOsan(pelaaja4, osa)) return pelaaja4; 508 return null; 509 } 510 511 bool OmistaaOsan(Pelaaja pelaaja, PhysicsObject osa) 512 { 513 foreach (var obj in pelaaja.RuumiinOsat) 514 { 515 if (obj == osa) 516 return true; 517 } 518 return false; 519 } 433 520 } 434 435 public class Pelaaja436 {437 List<PhysicsObject> ruumiinOsat = new List<PhysicsObject>();438 public List<PhysicsObject> RuumiinOsat { get { return ruumiinOsat; } }439 IntMeter elamat;440 public IntMeter Elamat { get { return elamat; } }441 bool otetaanko = false;442 public AxleJoint vasenKasi;443 public AxleJoint oikeaKasi;444 445 public bool OtetaankoKiinni446 {447 get448 {449 return otetaanko;450 }451 set452 {453 otetaanko = value;454 foreach (var item in ruumiinOsat)455 {456 if ("oikeaKammen".Equals(item.Tag))457 {458 if (oikeaKasi != null) return;459 if (otetaanko) item.Color = Color.Red;460 else item.Color = Color.Black;461 }462 if ("vasenKammen".Equals(item.Tag))463 {464 if (vasenKasi != null) return;465 if (otetaanko) item.Color = Color.Red;466 else item.Color = Color.Black;467 }468 }469 }470 }471 472 public Pelaaja(int defaultHp)473 {474 elamat = new IntMeter(defaultHp, 0, defaultHp);475 }476 }
Note: See TracChangeset
for help on using the changeset viewer.