Changeset 5836 for 2014/koodauskerho
- Timestamp:
- 2015-04-18 15:07:46 (8 years ago)
- Location:
- 2014/koodauskerho/38/PietuR
- Files:
-
- 98 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
2014/koodauskerho/38/PietuR/Weaporage/Weaporage/Weaporage/Weaporage.cs
r5821 r5836 7 7 using Jypeli.Widgets; 8 8 9 class Pistooli : PhysicsObject 9 class Pistooli : MeleeAse 10 { 11 public Timer ampumisAjastin; 12 13 public Pistooli(Weaporage peli, double leveys, double korkeus) 14 : base(peli, leveys, korkeus) 15 { 16 } 17 18 public void LopetaAmpuminen() 19 { 20 if (ampumisAjastin != null) 21 ampumisAjastin.Stop(); 22 } 23 } 24 25 class Valomiekka : MeleeAse 26 { 27 public Valomiekka(Weaporage peli, double leveys, double korkeus) 28 : base(peli, leveys, korkeus) 29 { 30 } 31 } 32 33 class MeleeAse : PhysicsObject 10 34 { 11 35 Weaporage peli; 12 36 13 public Pistooli(Weaporage peli, double leveys, double korkeus) 37 AxleJoint currentHolder; 38 39 public MeleeAse(Weaporage peli, double leveys, double korkeus) 14 40 : base(leveys, korkeus) 15 41 { 16 42 this.peli = peli; 43 } 44 45 public void VaihdaOmistajaa(AxleJoint joint) 46 { 47 if (currentHolder != null) 48 currentHolder.Destroy(); 49 currentHolder = joint; 17 50 } 18 51 } … … 51 84 if (pelaaja != null) 52 85 { 53 pelaaja.Elamat.Value -= 6 ;86 pelaaja.Elamat.Value -= 60; 54 87 } 55 88 } … … 62 95 public List<PhysicsObject> RuumiinOsat { get { return ruumiinOsat; } } 63 96 64 IntMeter elamat; 65 66 public IntMeter Elamat { get { return elamat; } } 97 public List<AxleJoint> liitokset = new List<AxleJoint>(); 98 public PhysicsObject tamanhetkinenAse; 99 100 DoubleMeter elamat; 101 102 public DoubleMeter Elamat { get { return elamat; } } 67 103 68 104 bool otetaanko = false; … … 97 133 } 98 134 99 public Pelaaja(int defaultHp) 100 { 101 elamat = new IntMeter(defaultHp, 0, defaultHp); 135 public Pelaaja(double defaultHp) 136 { 137 elamat = new DoubleMeter(defaultHp, 0.0, defaultHp); 138 } 139 140 public void RikoLiitokset() 141 { 142 if (liitokset != null && liitokset.Count != 0) 143 { 144 for (int i = 0; i < liitokset.Count; i++) 145 { 146 liitokset[i].Destroy(); 147 } 148 } 102 149 } 103 150 } … … 140 187 LisaaAseetPeliin(new Vector(-700, 700)); 141 188 189 190 { 191 Timer pommitulee = new Timer(); 192 pommitulee.Interval = 10; 193 pommitulee.Timeout += delegate 194 { 195 Pommi ase7 = new Pommi(this, 75, 75); 196 ase7.Position = (new Vector(0, 0)); 197 ase7.Image = Pomminkuva; 198 ase7.Shape = Shape.FromImage(Pomminkuva); 199 ase7.Tag = "ase"; 200 Add(ase7); 201 }; 202 pommitulee.Start(); 203 } 204 205 142 206 Level.Background.CreateGradient(RandomGen.NextColor(), RandomGen.NextColor()); 143 207 144 208 IsFullScreen = true; 145 146 pelaaja1 = new Pelaaja(10 );147 pelaaja2 = new Pelaaja(10 );148 pelaaja3 = new Pelaaja(10 );149 pelaaja4 = new Pelaaja(10 );209 210 pelaaja1 = new Pelaaja(100); 211 pelaaja2 = new Pelaaja(100); 212 pelaaja3 = new Pelaaja(100); 213 pelaaja4 = new Pelaaja(100); 150 214 151 215 IsMouseVisible = true; 152 216 153 /* PhysicsObject pallo = new PhysicsObject(200, 200);154 pallo.Position = new Vector(0, 0);155 RandomMoverBrain satunnaisAivot = new RandomMoverBrain(2000);156 pallo.Image = Pallonkuva;157 pallo.Brain = satunnaisAivot;158 satunnaisAivot.ChangeMovementSeconds = 100;159 pallo.Shape = Shape.Circle;160 pallo.AngularAcceleration = 10000;161 pallo.RotateImage = true;162 pallo.Tag = "ase";163 Add(pallo);*/164 165 166 167 217 /* PhysicsObject pallo = new PhysicsObject(200, 200); 218 pallo.Position = new Vector(0, 0); 219 RandomMoverBrain satunnaisAivot = new RandomMoverBrain(2000); 220 pallo.Image = Pallonkuva; 221 pallo.Brain = satunnaisAivot; 222 satunnaisAivot.ChangeMovementSeconds = 100; 223 pallo.Shape = Shape.Circle; 224 pallo.AngularAcceleration = 10000; 225 pallo.RotateImage = true; 226 pallo.Tag = "ase"; 227 Add(pallo);*/ 228 229 230 231 168 232 Level.CreateBorders(); 169 233 Camera.ZoomToLevel(); 170 234 Gravity = new Vector(0, -100); 171 235 172 Luopelaaja(pelaaja1, 2, new Vector(200, 200), Color.Red);173 Luopelaaja(pelaaja2, 12, new Vector(200, -200), Color.Pink);174 Luopelaaja(pelaaja3, 20, new Vector(-200, -200), Color.SpringGreen);175 Luopelaaja(pelaaja4, 30, new Vector(-200, 200), Color.Blue);236 Luopelaaja(pelaaja1, 2, new Vector(200, 200), RandomGen.NextColor()); 237 Luopelaaja(pelaaja2, 12, new Vector(200, -200), RandomGen.NextColor()); 238 Luopelaaja(pelaaja3, 20, new Vector(-200, -200), RandomGen.NextColor()); 239 Luopelaaja(pelaaja4, 30, new Vector(-200, 200), RandomGen.NextColor()); 176 240 177 241 Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "liikuta", pelaaja1, new Vector(-100, 0)); … … 244 308 } 245 309 pelaaja.OtetaankoKiinni = false; 310 Pistooli p = pelaaja.tamanhetkinenAse as Pistooli; 311 if (p != null) 312 p.LopetaAmpuminen(); 313 p = null; 246 314 } 247 315 … … 257 325 void LisaaAseetPeliin(Vector asepaikka) 258 326 { 259 int asenumero = RandomGen.NextInt(1, 8);327 int asenumero = RandomGen.NextInt(1, 9); 260 328 if (asenumero == 1) 261 329 { 262 PhysicsObject ase = new PhysicsObject(116, 404);330 MeleeAse ase = new MeleeAse(this, 116, 404); 263 331 ase.Position = asepaikka; 264 332 ase.Mass = 5; … … 270 338 else if (asenumero == 2) 271 339 { 272 PhysicsObject ase2 = new PhysicsObject(40, 93);340 MeleeAse ase2 = new MeleeAse(this, 40, 93); 273 341 ase2.Position = asepaikka; 274 342 ase2.Mass = 0.00000001; … … 280 348 else if (asenumero == 3) 281 349 { 282 PhysicsObject ase3 = new PhysicsObject(52, 320);350 MeleeAse ase3 = new MeleeAse(this, 52, 320); 283 351 ase3.Position = asepaikka; 284 352 ase3.Mass = 0.1; … … 292 360 else if (asenumero == 4) 293 361 { 294 PhysicsObject ase4 = new PhysicsObject(160, 374);362 MeleeAse ase4 = new MeleeAse(this, 160, 374); 295 363 ase4.Position = asepaikka; 296 364 ase4.Mass = 10; … … 302 370 else if (asenumero == 5) 303 371 { 304 PhysicsObject ase5 = new PhysicsObject(12, 440);372 MeleeAse ase5 = new MeleeAse(this, 12, 440); 305 373 ase5.Position = asepaikka; 306 374 ase5.Image = Sauvankuva; … … 320 388 else if (asenumero == 7) 321 389 { 322 Pommi ase7 = new Pommi(this, 50, 50);390 Pommi ase7 = new Pommi(this, 75, 75); 323 391 ase7.Position = asepaikka; 324 392 ase7.Image = Pomminkuva; 325 393 ase7.Shape = Shape.FromImage(Pomminkuva); 394 ase7.Tag = "ase"; 395 Add(ase7); 396 } 397 else if (asenumero == 8) 398 { 399 Valomiekka ase7 = new Valomiekka(this, 40, 296); 400 ase7.Position = asepaikka; 401 ase7.Image = Valomiekankuva; 402 ase7.Shape = Shape.FromImage(Valomiekankuva); 326 403 ase7.Tag = "ase"; 327 404 Add(ase7); … … 398 475 Add(rajahdys); 399 476 paa.Destroy(); 477 pelaaja.RikoLiitokset(); 400 478 }; 401 479 … … 424 502 Add(vasenKammen); 425 503 Add(oikeaKammen); 426 LiitaYhteen(paa, keskiVartalo, new Vector(0, -5));427 LiitaYhteen(keskiVartalo, vasenKasi, new Vector(-10, 30));428 LiitaYhteen(vasenKasi, vasenKasi2, new Vector(-25, 0));429 LiitaYhteen(keskiVartalo, oikeaKasi, new Vector(10, 30));430 LiitaYhteen(oikeaKasi, oikeaKasi2, new Vector(25, 0));431 LiitaYhteen(vasenJalka, keskiVartalo, new Vector(0, 30));432 LiitaYhteen(oikeaJalka, keskiVartalo, new Vector(0, 30));433 LiitaYhteen(vasenJalka2, vasenJalka, new Vector(0, 25));434 LiitaYhteen(oikeaJalka2, oikeaJalka, new Vector(0, 25));435 LiitaYhteen(vasenKasi2, vasenKammen, new Vector(-25, 0));436 LiitaYhteen(oikeaKasi2, oikeaKammen, new Vector(25, 0));504 pelaaja.liitokset.Add(LiitaYhteen(paa, keskiVartalo, new Vector(0, -5))); 505 pelaaja.liitokset.Add(LiitaYhteen(keskiVartalo, vasenKasi, new Vector(-10, 30))); 506 pelaaja.liitokset.Add(LiitaYhteen(vasenKasi, vasenKasi2, new Vector(-25, 0))); 507 pelaaja.liitokset.Add(LiitaYhteen(keskiVartalo, oikeaKasi, new Vector(10, 30))); 508 pelaaja.liitokset.Add(LiitaYhteen(oikeaKasi, oikeaKasi2, new Vector(25, 0))); 509 pelaaja.liitokset.Add(LiitaYhteen(vasenJalka, keskiVartalo, new Vector(0, 30))); 510 pelaaja.liitokset.Add(LiitaYhteen(oikeaJalka, keskiVartalo, new Vector(0, 30))); 511 pelaaja.liitokset.Add(LiitaYhteen(vasenJalka2, vasenJalka, new Vector(0, 25))); 512 pelaaja.liitokset.Add(LiitaYhteen(oikeaJalka2, oikeaJalka, new Vector(0, 25))); 513 pelaaja.liitokset.Add(LiitaYhteen(vasenKasi2, vasenKammen, new Vector(-25, 0))); 514 pelaaja.liitokset.Add(LiitaYhteen(oikeaKasi2, oikeaKammen, new Vector(25, 0))); 437 515 } 438 516 439 517 void AseOsuuRuumiinOsaan(PhysicsObject ruumiinOsa, PhysicsObject ase, Pelaaja pelaaja) 440 518 { 519 const double KERROIN = 0.05; // > 0 520 double extraDmg = ase.Velocity.Magnitude * KERROIN; 441 521 442 522 if (pelaaja.oikeaKasi != null && ase.Equals(pelaaja.oikeaKasi.Object2)) return; 443 523 if (pelaaja.vasenKasi != null && ase.Equals(pelaaja.vasenKasi.Object2)) return; 444 pelaaja.Elamat.Value --;524 pelaaja.Elamat.Value -= (int)(1 + extraDmg); 445 525 } 446 526 … … 450 530 { 451 531 pelaaja.vasenKasi = LiitaYhteen(kasi, ase, Vector.Zero); 532 pelaaja.tamanhetkinenAse = ase; 533 MeleeAse weapon = ase as MeleeAse; 534 if (weapon != null) 535 { 536 weapon.VaihdaOmistajaa(pelaaja.vasenKasi); 537 } 452 538 453 539 if (ase is Pommi) … … 472 558 }; 473 559 laukausaika.Start(); 474 } 560 Pistooli p = ase as Pistooli; 561 p.ampumisAjastin = laukausaika; 562 } 563 else if (ase is Valomiekka) 564 { 565 Animation anim = new Animation(Valomiekkaaukeaa); 566 anim.FPS = 5; 567 //anim.StopOnLastFrame = true; 568 ase.Animation = anim; 569 ase.Animation.Start(); 570 571 anim.Played += delegate 572 { 573 ase.Animation = null; 574 ase.Image = Valomiekkaaukeaa[Valomiekkaaukeaa.Length - 1]; 575 ase.Shape = Shape.FromImage(Valomiekkaaukeaa[Valomiekkaaukeaa.Length - 1]); 576 }; 577 } 578 475 579 } 476 580 //ase.CollisionIgnoreGroup = kasi.CollisionIgnoreGroup; … … 478 582 } 479 583 584 480 585 void KeraaAseOikeaanKateen(PhysicsObject kasi, PhysicsObject ase, Pelaaja pelaaja) 481 586 { … … 483 588 { 484 589 pelaaja.oikeaKasi = LiitaYhteen(kasi, ase, Vector.Zero); 590 pelaaja.tamanhetkinenAse = ase; 591 MeleeAse weapon = ase as MeleeAse; 592 if (weapon != null) 593 { 594 weapon.VaihdaOmistajaa(pelaaja.oikeaKasi); 595 } 485 596 486 597 if (ase is Pommi) … … 505 616 laukausaika.Start(); 506 617 } 618 else if (ase is Valomiekka) 619 { 620 Animation anim = new Animation(Valomiekkaaukeaa); 621 anim.FPS = 5; 622 //anim.StopOnLastFrame = true; 623 ase.Animation = anim; 624 ase.Animation.Start(); 625 626 anim.Played += delegate 627 { 628 ase.Animation = null; 629 ase.Image = Valomiekkaaukeaa[Valomiekkaaukeaa.Length - 1]; 630 ase.Shape = Shape.FromImage(Valomiekkaaukeaa[Valomiekkaaukeaa.Length - 1]); 631 }; 632 } 507 633 } 508 634 //ase.CollisionIgnoreGroup = kasi.CollisionIgnoreGroup; -
2014/koodauskerho/38/PietuR/Weaporage/Weaporage/Weaporage/obj/x86/Debug/ContentPipeline-{06B8DCF8-84D5-47F5-8E6A-9758023E8CEC}.xml
r5821 r5836 9 9 <Options>None</Options> 10 10 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Miekka.xnb</Output> 11 <Time>2015-0 3-14T11:16:10.7862951+02:00</Time>11 <Time>2015-04-18T10:08:28.3495006+03:00</Time> 12 12 </Item> 13 13 <Item> … … 18 18 <Options>None</Options> 19 19 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Nuija.xnb</Output> 20 <Time>2015-0 3-14T13:46:54.2332968+02:00</Time>20 <Time>2015-04-18T10:08:28.1779006+03:00</Time> 21 21 </Item> 22 22 <Item> … … 27 27 <Options>None</Options> 28 28 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Tikari.xnb</Output> 29 <Time>2015-0 3-14T11:26:04.4504951+02:00</Time>29 <Time>2015-04-18T10:08:28.3963006+03:00</Time> 30 30 </Item> 31 31 <Item> … … 36 36 <Options>None</Options> 37 37 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Sauva.xnb</Output> 38 <Time>2015-0 3-14T10:00:08.0898951+02:00</Time>38 <Time>2015-04-18T10:08:28.1935006+03:00</Time> 39 39 </Item> 40 40 <Item> … … 45 45 <Options>None</Options> 46 46 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Pistooli.xnb</Output> 47 <Time>2015-0 3-14T10:00:08.0586951+02:00</Time>47 <Time>2015-04-18T10:08:28.1467006+03:00</Time> 48 48 </Item> 49 49 <Item> … … 54 54 <Options>None</Options> 55 55 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Luoti.xnb</Output> 56 <Time>2015-0 3-14T10:19:54.1272951+02:00</Time>56 <Time>2015-04-18T10:08:28.3495006+03:00</Time> 57 57 </Item> 58 58 <Item> … … 63 63 <Options>None</Options> 64 64 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Pommi1.xnb</Output> 65 <Time>2015-0 3-14T10:00:08.0586951+02:00</Time>65 <Time>2015-04-18T10:08:28.3651006+03:00</Time> 66 66 </Item> 67 67 <Item> … … 72 72 <Options>None</Options> 73 73 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Pommi2.xnb</Output> 74 <Time>2015-0 3-14T10:00:08.0586951+02:00</Time>74 <Time>2015-04-18T10:08:28.3651006+03:00</Time> 75 75 </Item> 76 76 <Item> … … 81 81 <Options>None</Options> 82 82 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Pommi3.xnb</Output> 83 <Time>2015-0 3-14T10:00:08.0586951+02:00</Time>83 <Time>2015-04-18T10:08:28.3651006+03:00</Time> 84 84 </Item> 85 85 <Item> … … 90 90 <Options>None</Options> 91 91 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Pommi4.xnb</Output> 92 <Time>2015-0 3-14T10:00:08.0586951+02:00</Time>92 <Time>2015-04-18T10:08:28.3807006+03:00</Time> 93 93 </Item> 94 94 <Item> … … 99 99 <Options>None</Options> 100 100 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Pommi5.xnb</Output> 101 <Time>2015-0 3-14T10:00:08.0742951+02:00</Time>101 <Time>2015-04-18T10:08:28.3807006+03:00</Time> 102 102 </Item> 103 103 <Item> … … 108 108 <Options>None</Options> 109 109 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Pommi6.xnb</Output> 110 <Time>2015-0 3-14T10:00:08.0742951+02:00</Time>110 <Time>2015-04-18T10:08:28.3807006+03:00</Time> 111 111 </Item> 112 112 <Item> … … 117 117 <Options>None</Options> 118 118 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Pallo.xnb</Output> 119 <Time>2015-0 3-14T10:00:08.0742951+02:00</Time>119 <Time>2015-04-18T10:08:28.1779006+03:00</Time> 120 120 </Item> 121 121 <Item> … … 126 126 <Options>None</Options> 127 127 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Rajahdys.xnb</Output> 128 <Time>2015-0 3-14T10:00:08.0742951+02:00</Time>128 <Time>2015-04-18T10:08:28.1623006+03:00</Time> 129 129 </Item> 130 130 <Item> … … 135 135 <Options>None</Options> 136 136 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Kirves.xnb</Output> 137 <Time>2015-0 3-14T11:51:13.5344951+02:00</Time>137 <Time>2015-04-18T10:08:28.3651006+03:00</Time> 138 138 </Item> 139 139 <Item> … … 144 144 <Options>None</Options> 145 145 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Valomiekka.xnb</Output> 146 <Time>2015-0 3-14T12:58:33.5748968+02:00</Time>146 <Time>2015-04-18T10:08:28.1935006+03:00</Time> 147 147 </Item> 148 148 <Item> … … 153 153 <Options>None</Options> 154 154 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Valomiekka1.xnb</Output> 155 <Time>2015-0 3-14T13:12:04.3272968+02:00</Time>155 <Time>2015-04-18T10:08:28.1467006+03:00</Time> 156 156 </Item> 157 157 <Item> … … 162 162 <Options>None</Options> 163 163 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Valomiekka2.xnb</Output> 164 <Time>2015-0 3-14T13:13:13.7936968+02:00</Time>164 <Time>2015-04-18T10:08:28.1467006+03:00</Time> 165 165 </Item> 166 166 <Item> … … 171 171 <Options>None</Options> 172 172 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Valomiekka3.xnb</Output> 173 <Time>2015-0 3-14T13:13:45.3690968+02:00</Time>173 <Time>2015-04-18T10:08:28.1779006+03:00</Time> 174 174 </Item> 175 175 <Item> … … 180 180 <Options>None</Options> 181 181 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Valomiekka4.xnb</Output> 182 <Time>2015-0 3-14T13:14:09.2146968+02:00</Time>182 <Time>2015-04-18T10:08:28.1779006+03:00</Time> 183 183 </Item> 184 184 <Item> … … 189 189 <Options>None</Options> 190 190 <Output>C:\MyTemp\PietuR\Weaporage\Weaporage\Weaporage\bin\x86\Debug\Content\Valomiekka5.xnb</Output> 191 <Time>2015-0 3-14T13:15:21.5718968+02:00</Time>191 <Time>2015-04-18T10:08:28.1935006+03:00</Time> 192 192 </Item> 193 193 <BuildSuccessful>true</BuildSuccessful> … … 238 238 <Assembly> 239 239 <Key>C:\Windows\Microsoft.Net\assembly\GAC_32\Microsoft.Xna.Framework.Content.Pipeline\v4.0_4.0.0.0__842cf8be1de50553\Microsoft.Xna.Framework.Content.Pipeline.dll</Key> 240 <Value>2014-04-23T0 0:53:38.0521963+03:00</Value>240 <Value>2014-04-23T01:01:53.8831999+03:00</Value> 241 241 </Assembly> 242 242 </Assemblies>
Note: See TracChangeset
for help on using the changeset viewer.