- Timestamp:
- 2014-07-04 13:01:15 (8 years ago)
- Location:
- 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/Avaruuspeli.cs
r5440 r5454 18 18 { 19 19 elamaLaskuri = new IntMeter(elama, 0, elama); 20 20 21 21 } 22 22 } … … 66 66 private IntMeter elamaLaskuri; 67 67 public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 68 68 69 69 public Tykki(double leveys, double korkeus, int elama) 70 70 : base(leveys, korkeus) … … 93 93 private const int MAX_KIERROSAIKA = 300; 94 94 95 Timer aseidenAjastin;95 List<Timer> aseidenAjastimet = new List<Timer>(); 96 96 97 97 List<Vihu> vihut = new List<Vihu>(); … … 109 109 Image Orkkikuva = LoadImage("Orkki"); 110 110 Image monsteri = LoadImage("Monsteri"); 111 Image flamerkuva = LoadImage("Flamer");111 Image flamerkuva = LoadImage("Flamer"); 112 112 Image Estekuva = LoadImage("Este"); 113 113 Image Automaattikuva = LoadImage("Automaattitykki"); … … 164 164 seurattava.IgnoresCollisionResponse = false; 165 165 (seurattava as Tykki).ase = ase; 166 aseidenAjastin = new Timer(); 167 aseidenAjastin.Interval = 0.1; 168 aseidenAjastin.Timeout += delegate 166 if (seurattava.Tag.Equals("flamer")) 169 167 { 170 171 172 //List<GameObject> vihut = GetObjectsWithTag("vihollinen"); 173 //var vihut = vihulista; 174 //if (vihut == null || vihut.Count == 0) return; 175 // 176 //double etäisyys = Vector.Distance(ase.AbsolutePosition, vihut[0].Position); 177 //if (etäisyys > 400) return; 178 // 179 ////vihut.Sort((a, b) => Vector.Distance(a.Position, ase.AbsolutePosition) > Vector.Distance(b.Position, ase.AbsolutePosition) ? 1 : -1); 180 //vihut.Sort((a, b) => JarjestaVihut(ase, a, b)); 181 //ase.Angle = (vihut[0].Position - ase.AbsolutePosition).Angle; 182 PhysicsObject ammus = ase.Shoot(); 183 184 if (ammus != null) 168 Timer aseenAjastin = new Timer(); 169 aseenAjastin.Interval = 0.1; 170 aseenAjastin.Timeout += delegate 185 171 { 186 if (ase.Parent != null && ase.Parent.Tag.Equals("flamer")) 172 173 174 //List<GameObject> vihut = GetObjectsWithTag("vihollinen"); 175 //var vihut = vihulista; 176 //if (vihut == null || vihut.Count == 0) return; 177 // 178 //double etäisyys = Vector.Distance(ase.AbsolutePosition, vihut[0].Position); 179 //if (etäisyys > 400) return; 180 // 181 ////vihut.Sort((a, b) => Vector.Distance(a.Position, ase.AbsolutePosition) > Vector.Distance(b.Position, ase.AbsolutePosition) ? 1 : -1); 182 //vihut.Sort((a, b) => JarjestaVihut(ase, a, b)); 183 //ase.Angle = (vihut[0].Position - ase.AbsolutePosition).Angle; 184 185 186 PhysicsObject ammus = ase.Shoot(); 187 188 if (ammus != null) 187 189 { 188 190 ammus.Image = Tulikuva; 189 191 ammus.Size *= 3; 190 192 ammus.CollisionIgnoreGroup = 3; 193 194 //ammus.Image = cannonballKuva; 195 ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 191 196 } 192 else 197 198 if (ase.Parent != null && ase.Parent.IsDestroyed) 199 aseenAjastin.Stop(); 200 }; 201 aseenAjastin.Start(); 202 203 aseidenAjastimet.Add(aseenAjastin); 204 205 ollaanRakentamassa = false; 206 seurattava = null; 207 } 208 209 210 211 else if (seurattava.Tag.Equals("automaattiTykki")) 212 { 213 Timer aseenAjastin = new Timer(); 214 aseenAjastin.Interval = 0.5; 215 aseenAjastin.Timeout += delegate 216 { 217 218 219 //List<GameObject> vihut = GetObjectsWithTag("vihollinen"); 220 //var vihut = vihulista; 221 //if (vihut == null || vihut.Count == 0) return; 222 // 223 //double etäisyys = Vector.Distance(ase.AbsolutePosition, vihut[0].Position); 224 //if (etäisyys > 400) return; 225 // 226 ////vihut.Sort((a, b) => Vector.Distance(a.Position, ase.AbsolutePosition) > Vector.Distance(b.Position, ase.AbsolutePosition) ? 1 : -1); 227 //vihut.Sort((a, b) => JarjestaVihut(ase, a, b)); 228 //ase.Angle = (vihut[0].Position - ase.AbsolutePosition).Angle; 229 PhysicsObject ammus = ase.Shoot(); 230 231 if (ammus != null) 193 232 { 194 233 ammus.Size *= 0.5; 195 234 ammus.CollisionIgnoreGroup = 3; 235 236 //ammus.Image = cannonballKuva; 237 ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 196 238 } 197 //ammus.Image = cannonballKuva; 198 ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 199 } 200 201 if (ase.Parent != null && ase.Parent.IsDestroyed) 202 aseidenAjastin.Stop(); 203 }; 204 aseidenAjastin.Start(); 205 206 ollaanRakentamassa = false; 207 seurattava = null; 208 } 209 /* 210 else 211 { 212 List<Tykki> tornit = GetObjectsWithTag("torni").Cast<Tykki>().ToList(); 213 foreach (Tykki torni in tornit) 214 { 215 int hinta = 40 + 20 * torni.taso; 216 if (Mouse.IsCursorOn(torni) && torni.taso < Tornikuvat.Length) 217 { 218 if (rahalaskuri.Value >= hinta) 219 { 220 221 222 torni.taso += 1; 223 torni.ase.FireRate = 1 + torni.taso; 224 rahalaskuri.Value -= hinta; 225 torni.Image = Tornikuvat[torni.taso - 1]; 226 } 227 else 228 { 229 MessageDisplay.Add("Ei tarpeeksi rahaa. Päivitys maksaa " + hinta); 230 231 } 232 } 233 239 240 if (ase.Parent != null && ase.Parent.IsDestroyed) 241 aseenAjastin.Stop(); 242 }; 243 aseenAjastin.Start(); 244 245 aseidenAjastimet.Add(aseenAjastin); 246 247 ollaanRakentamassa = false; 248 seurattava = null; 234 249 } 235 250 } 236 */ 251 237 252 } 238 253 … … 295 310 ); 296 311 } 297 312 298 313 int JarjestaVihut(AssaultRifle ase, GameObject a, GameObject b) 299 314 { … … 308 323 menuNappi.Clicked += new Action(() => AnnaAse(rakennusKoko, rakennusKoko, hinta, rakennusKuva, "flamer")); 309 324 Add(menuNappi); 310 Mouse.ListenMovement(1.0, delegate { 325 Mouse.ListenMovement(1.0, delegate 326 { 311 327 if (Mouse.IsCursorOn(menuNappi)) 312 328 { … … 332 348 Gravity = new Vector(0, -1000); 333 349 SmoothTextures = false; 334 350 335 351 336 352 if (pelaajienLkm == 1) … … 352 368 LuoAseNappula(new Vector(80, (Screen.Bottom + 35)), 40, 40, flamerkuva, 200, 100); 353 369 LuoTykkiNappula(new Vector(-80, (Screen.Bottom + 35)), 40, 40, Automaattikuva, 300, 100); 354 370 355 371 Camera.Follow(pelaaja1); 356 372 Camera.ZoomFactor = 1.2; … … 365 381 menuHelperNaytto.IsVisible = false; 366 382 367 // List<Torni> tornit = GetObjectsWithTag("torni").Cast<Torni>().ToList();368 // foreach (Torni torni in tornit)369 // {370 // if (Mouse.IsCursorOn(torni))371 // {372 // menuHelperNaytto.IsVisible = true;373 // menuHelperNaytto.Text = "Torni, " + torni.taso;374 // menuHelperNaytto.Position = Mouse.PositionOnScreen + new Vector(menuHelperNaytto.Width / 2 + 10, 0);375 // }376 // }383 // List<Torni> tornit = GetObjectsWithTag("torni").Cast<Torni>().ToList(); 384 // foreach (Torni torni in tornit) 385 // { 386 // if (Mouse.IsCursorOn(torni)) 387 // { 388 // menuHelperNaytto.IsVisible = true; 389 // menuHelperNaytto.Text = "Torni, " + torni.taso; 390 // menuHelperNaytto.Position = Mouse.PositionOnScreen + new Vector(menuHelperNaytto.Width / 2 + 10, 0); 391 // } 392 // } 377 393 }, null); 378 394 } … … 432 448 AddCollisionHandler(pelaaja1, "vihollinen", Tormaaviholliseen); 433 449 450 pelaaja1.CollisionIgnoreGroup = 3; 451 434 452 pelaaja1.AnimWalk = new Animation(Avaruuskävely); 435 453 pelaaja1.AnimIdle = new Animation(pelaajanKuva); … … 459 477 AddCollisionHandler(pelaaja2, "vihollinen", Tormaaviholliseen); 460 478 479 pelaaja2.CollisionIgnoreGroup = 3; 480 461 481 pelaaja2.AnimWalk = new Animation(Avaruuskävely); 462 482 pelaaja2.AnimIdle = new Animation(pelaajanKuva); … … 475 495 (kohde as Vihu).ElamaLaskuri.Value--; 476 496 osumisaani.Play(); 477 497 478 498 } 479 499 } … … 489 509 //ammus.Size *= 3; 490 510 //ammus.Image = ... 511 ammus.CollisionIgnoreGroup = 3; 491 512 ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 492 513 } … … 528 549 hahmo.Walk(nopeus); 529 550 } 530 551 531 552 532 553 … … 554 575 void LuoAlien() 555 576 { 556 Vihu vihollinen = new Vihu(20, 100, 1 50);577 Vihu vihollinen = new Vihu(20, 100, 120); 557 578 vihollinen.ElamaLaskuri.LowerLimit += delegate 558 579 { … … 565 586 vihollinen.X = Level.Right - 100; 566 587 vihollinen.Tag = "vihollinen"; 567 Add(vihollinen, 3);588 Add(vihollinen, 3); 568 589 569 590 vihut.Add(vihollinen); … … 586 607 void LuoOrkki() 587 608 { 588 Vihu vihollinen = new Vihu(1 0, 200, 200);609 Vihu vihollinen = new Vihu(12, 200, 200); 589 610 vihollinen.ElamaLaskuri.LowerLimit += delegate 590 611 { … … 616 637 void Luovihollinen() 617 638 { 618 Vihu vihollinen = new Vihu(3, 100, 100); 619 vihollinen.ElamaLaskuri.LowerLimit += delegate { 639 Vihu vihollinen = new Vihu(6, 100, 100); 640 vihollinen.ElamaLaskuri.LowerLimit += delegate 641 { 620 642 vihollinen.Destroy(); 621 643 vihut.Remove(vihollinen as Vihu); … … 697 719 void AloitaAalto() 698 720 { 699 //int kier = 20 / kieorrokset; 700 //if (aseidenAjastin != null) aseidenAjastin. 721 foreach (Timer aika in aseidenAjastimet) 722 { 723 aika.Start(); 724 } 701 725 702 726 Timer ajastin = new Timer(); … … 715 739 ajastin3.Start(); 716 740 717 if (alaspainLaskuri ==null) LuoAaltoAikaLaskuri();741 if (alaspainLaskuri == null) LuoAaltoAikaLaskuri(); 718 742 else 719 743 { … … 781 805 void AaltoLoppui() 782 806 { 783 //if (aseidenAjastin != null) aseidenAjastin.Interval = 10; 807 foreach (Timer ajastin in aseidenAjastimet) 808 { 809 ajastin.Pause(); 810 } 811 784 812 kieorrokset--; 785 813 aaltoPalkki.Value = 20;
Note: See TracChangeset
for help on using the changeset viewer.